假设我有一个包含5列的df和另一个包含6列的df。我想把df1和df2连接起来,这样df1中列的空行就会被df2中的非空值所取代。如何在python中执行此操作?
我不想指定列的名称,请对它们进行硬编码。我想制作一个健壮的逻辑,即使将来我们需要将行替换为7列而不是6列,它也能工作。
示例数据:df1=
col1 col2 col3 col5
1 null null 5
2 null 5 9
4 4 8 6
null 0 9 1
df2=
col1 col2 col3 col4
1 2 -3 5
null null 7 5
4 4 8 1
1 null 9 3
最终df=
col1 col2 col3 col5 col4
1 2 -3 5 5
2 null 5 9 5
4 4 8 6 1
1 0 9 1 3
条件:
- df1中列的空行被df2中的非空值替换
- 如果两个数据帧在同一索引上具有不同的非空值,则取第一个或第二个。没关系
- 如果这两个值都为null,那么最终的df在同一索引上将具有null值
- 我不想指定列名,只想有一个健壮的脚本,它适用于其他具有不同列名的数据
我想把df1和df2连接起来,这样df1中列的空行就会被df2中的非空值所取代。如何在python中执行此操作?
只需加入即可使用coalesce
获得第一个非空值
我不想指定列的名称,请硬连接它们。
您可以通过df.columns
访问列的名称,并通过df.dtypes
访问列的数据类型