如何将熊猫数据帧的一部分替换为另一部分?

时间:2021-05-05 13:08:52

标签: python pandas dataframe

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

我想用 df_b 的相应行替换 df_a 的第 42 到 51 行(与 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 值替换。有谁知道一种简单的方法吗?

1 个答案:

答案 0 :(得分:0)

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 个值