【发布时间】:2020-08-29 18:10:42
【问题描述】:
我正在尝试将两个具有相同列和行数的数据框放在一起,但其中一个在某些行中有 nan 而另一个没有。
此示例使用 2 个 DF,但我必须使用大约 50 个 DF 来执行此操作,并将所有数据帧合并到 1 个中。
DF1:
id b c
0 1 15 1
1 2 nan nan
2 3 2 3
3 4 nan nan
DF2:
id b c
0 1 nan nan
1 2 26 6
2 3 nan nan
3 4 60 3
期望的输出:
id b c
0 1 15 1
1 2 26 6
2 3 2 3
3 4 60 3
【问题讨论】:
-
df1.combine_first(df2) -
或
df1.fillna(df2) -
谢谢@sushanth 和 anon01,这两个答案都成功了。我试图理解为什么这两个函数都适用。
-
上一个问题讨论了不同之处:stackoverflow.com/questions/46676134/…。基本上,
fillna仅填充现有的nacol/row 值,而combine_first填充缺失值并添加 df1 中不存在的其他 cols/rows
标签: python python-3.x pandas dataframe