我有2个数据框:
df1 =
item sale
0 7 10.0
1 4 10.0
2 6 10.0
3 5 10.0
4 5 10.0
5 6 10.0
6 4 10.0
df2 =
item sale
0 1 7
1 2 6
2 3 5
3 4 4
4 5 3
我要更改df1 sales列的值,并从df2 sales列中获取值。
我使用代码:
df1.loc[df1.item.isin(df2.item), ['sale']] = df2[['sale']]
然后我得到
df1 =
item sale
0 7 10.0
1 4 6.0
2 6 10.0
3 5 4.0
4 5 3.0
5 6 10.0
6 4 NaN
我想要的输出是:
df1 =
item sale
0 7 10.0
1 4 4.0
2 6 10.0
3 5 3.0
4 5 3.0
5 6 10.0
6 4 4.0
答案 0 :(得分:4)
两个数据框通过项目编号关联。因此,将项目编号设置为两个数据帧的索引,在带有df2的df1上运行update方法,然后重置索引
df1 = df1.set_index("item")
df1.update(df2.set_index("item"))
df1.reset_index()
item sale
0 7 10.0
1 4 4.0
2 6 10.0
3 5 3.0
4 5 3.0
5 6 10.0
6 4 4.0