【问题标题】:How to substitute a section of a pandas dataframe for another?如何将熊猫数据框的一部分替换为另一部分?
【发布时间】:2021-05-05 13:08:52
【问题描述】:

假设我有一个 DataFrame df_a 和另一个 df_b。

我想将 df_a 的第 42 到 51 行替换为 df_b 的相应行(行数相同,但列与 df_a 更多)。

我当前的代码是

df_a.loc[45:52,:] = df_b.loc[45:52,"Column A":"Column D"]

其中“Column A”:“Column D”匹配df_a的总列数。

我得到一个无意的结果,其中 df_a 中的所有选定术语都被替换为 nan 而不是 df_b 值。有谁知道一个简单的方法吗?

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:
df_1 = pd.DataFrame({"a" : (1,2,3,4), "b" : (5,4,6,7)})
df_2 = pd.DataFrame({"a" : (1,2,3,5), "b" : (2,3,6,3), "c" : (10,11,12,13)})
print(df_1)
   a  b
0  1  5
1  2  4
2  3  6
3  4  7
print(df_2)
    a   b   c
0   1   2   10
1   2   3   11
2   3   6   12
3   5   3   13
df_1.iloc[2,] = df_2.iloc[3,1:3].values
   a   b
0  1   5
1  2   4
2  3  13
3  4   7

在此示例中,我将 df_1 的第 3 行的值替换为 df_2 的第 4 行的最后 2 个值

【讨论】:

  • 非常感谢!显然我最后只是错过了“.values”。我是熊猫的新手,但我认为我原始语句的右侧已经在获取实际的“值”。再次感谢!
猜你喜欢
  • 1970-01-01
  • 2017-09-09
  • 1970-01-01
  • 2021-01-24
  • 2017-07-08
  • 2019-07-29
  • 1970-01-01
  • 2021-09-03
  • 1970-01-01
相关资源
最近更新 更多