python 数据框增加一个列_python – 将列从一个数据框映射到另一个数据框以创建新列...

df.merge

out = df1.merge(df2,left_on='store',right_on='store_code')\

[['id','store','address','warehouse']]

print(out)

id store address warehouse

0 1 100 xyz Land

1 2 200 qwe Sea

2 3 300 asd Land

3 4 400 zxc Land

4 5 500 bnm Sea

pd.concat df.sort_values

out = pd.concat([df1.sort_values('store'),\

df2.sort_values('store_code')[['warehouse']].reset_index(drop=1)],1)

print(out)

id store address warehouse

0 1 100 xyz Land

1 2 200 qwe Sea

2 3 300 asd Land

3 4 400 zxc Land

4 5 500 bnm Sea

假设您的数据帧已经在商店中排序,第一个排序调用是多余的,在这种情况下您可以将其删除.

df.replace

s = df1.store.replace(df2.set_index('store_code')['warehouse'])

print(s)

0 Land

1 Sea

2 Land

3 Land

4 Sea

df1['warehouse'] = s

print(df1)

id store address warehouse

0 1 100 xyz Land

1 2 200 qwe Sea

2 3 300 asd Land

3 4 400 zxc Land

4 5 500 bnm Sea

或者,显式创建映射.如果您想稍后使用它,则此方法有效.

mapping = dict(df2[['store_code','warehouse']].values) # separate step

df1['warehouse'] = df1.store.replace(mapping) # df1.store.map(mapping)

print(df1)

id store address warehouse

0 1 100 xyz Land

1 2 200 qwe Sea

2 3 300 asd Land

3 4 400 zxc Land

4 5 500 bnm Sea

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值