【问题标题】:Embedding modified sub-frame into the original one将修改后的子帧嵌入到原始子帧中
【发布时间】:2016-11-02 10:52:00
【问题描述】:

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

【问题讨论】:

  • df1.update(df2) 应该可以工作

标签: python pandas bigdata


【解决方案1】:

您可以使用update 用另一个df 更新一个df,其中行和列标签同意值已更新,您需要使用astype 强制转换为int,因为dtype 已更改为float due到缺失值:

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

【讨论】:

  • 非常感谢。我检查了它,这正是我所需要的。
猜你喜欢
  • 1970-01-01
  • 2021-05-05
  • 1970-01-01
  • 2020-09-07
  • 2014-11-22
  • 2014-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多