我有两个数据框,oldnew。两者都有相同的列。

我想通过索引


old中存在但new中不存在的行添加行
old中的数据更新old中的行。


new中有什么有效的方法吗?我找到了update(),它正是执行第二步。但是,它不会添加行。我可以对索引使用一些设置逻辑来进行第一步。但是,这似乎并不有效。进行这两项操作的最佳方法是什么?



pandas

    a   b
0   1   1
1   3   3


old

    a   b
1   1   2
2   1   2


new

    a   b
0   1   1
1   1   2
2   1   2

最佳答案

您可以首先找到两个数据帧的通用索引,然后为第一个数据索引分配第二个的值。然后,您将使用combine_first获得结果:

In [35]: df1
Out[35]:
   a  b
0  1  1
1  3  3

In [36]: df2
Out[36]:
   a  b
1  1  2
2  1  2

idx = df1.index & df2.index
df1.loc[idx, :] = df2.loc[idx, :]
df1 = df1.combine_first(df2)

In [39]: df1
Out[39]:
   a  b
0  1  1
1  1  2
2  1  2

关于python - Pandas :两个数据框的组合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36309446/

10-16 13:04
查看更多