将修改后的子帧嵌入到原始子帧中

时间:2016-11-02 10:52:01

标签: python pandas bigdata

我有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

1 个答案:

答案 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