我有一个熊猫数据框df1。
我想用索引和列名匹配的df2中的值覆盖其值。
我在此站点上找到了一些答案,但没有什么能完全满足我的要求。
df1
A B C
0 33 44 54
1 11 32 54
2 43 55 12
3 43 23 34
df2
A
0 5555
输出
A B C
0 5555 44 54
1 11 32 54
2 43 55 12
3 43 23 34
答案 0 :(得分:2)
如有必要,可以使用combine_first
并将其转换为整数:
df = df2.combine_first(df1).astype(int)
print (df)
A B C
0 5555 44 54
1 11 32 54
2 43 55 12
3 43 23 34
如果需要检查两个DataFrame
之间的交点索引和列:
df2= pd.DataFrame({'A':[5555, 2222],
'D':[3333, 4444]},index=[0, 10])
idx = df2.index.intersection(df1.index)
cols = df2.columns.intersection(df1.columns)
df = df2.loc[idx, cols].combine_first(df1).astype(int)
print (df)
A B C
0 5555 44 54
1 11 32 54
2 43 55 12
3 43 23 34