我有2个pandas数据框,其中一个包含第一个修改过的选定行(它们具有相似的列)。 为简单起见,下面的框架说明了这个问题。
df1 = df2 =
A B C A B C
0 1 2 3 1 20 30 40
1 2 3 4 3 40 50 60
2 3 4 5
3 4 5 6
有没有比下面的代码更有效和pythonic的方法,通过覆盖值将df2嵌入df1? (使用高维框架)
for index, row in df2.iterrows():
df1.ix[index,:] = df2.ix[index, :]
导致:
df1 =
A B C
0 1 2 3
1 20 30 40
2 3 4 5
3 40 50 60
答案 0 :(得分:3)
您可以使用update
更新df与其他df,其中行标签和列标签同意值已更新,您需要使用int
转换为astype
,因为由于缺少值,dtype更改为float:
In [21]:
df1.update(df2)
df1 = df1.astype(int)
df1
Out[21]:
A B C
0 1 2 3
1 20 30 40
2 3 4 5
3 40 50 60