我有两个数据框,old
和new
。两者都有相同的列。
我想通过索引
向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/