Python 熊猫:两个数据帧的组合
我有两个数据帧,Python 熊猫:两个数据帧的组合,python,pandas,Python,Pandas,我有两个数据帧,old和new。两者都有相同的列 我想,根据索引 在new中存在但不在old中的old中添加行 使用new中的数据更新old中的行 在pandas中是否有任何有效的方法?我发现,这正是第二步。但是,它不会添加行。我可以在索引上使用一些集合逻辑来完成第一步。然而,这似乎并不有效。做这两个手术最好的方法是什么 例子 old a b 0 1 1 1 3 3 new a b 1 1 2 2 1 2 结果 a b
old
和new
。两者都有相同的列
我想,根据索引
- 在
中存在但不在new
中的old
中添加行old
- 使用
中的数据更新new
中的行old
pandas
中是否有任何有效的方法?我发现,这正是第二步。但是,它不会添加行。我可以在索引上使用一些集合逻辑来完成第一步。然而,这似乎并不有效。做这两个手术最好的方法是什么
例子
old
a b
0 1 1
1 3 3
new
a b
1 1 2
2 1 2
结果
a b
0 1 1
1 1 2
2 1 2
可以使用
df.reindex()
方法执行第一步
old = old.reindex(index=new.index)
您可以首先为两个数据帧找到公共索引,然后为第一个数据帧找到索引并为第二个数据帧赋值。然后,您将得到以下结果:
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