假设我有一个 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 值替换。有谁知道一种简单的方法吗?
答案 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 个值