用另一个数据框列值中的值填充一个数据框列

时间:2020-06-06 11:14:10

标签: python pandas dataframe

我有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

1 个答案:

答案 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