Pandas dataframe是一个特殊的合并案例

时间:2017-06-04 12:29:06

标签: python pandas dataframe

如何将 dataframe1 的行合并到 dataframe2 中?

  • 如果其中一个对应的值是NaN,那么该值应为 从另一个复制。
  • 如果两者都是NaN,那么NaN。
  • 如果没有NaN则是第一个。


Dataframe1 Dataframe1



Dataframe2 Dataframe2

提前致谢

1 个答案:

答案 0 :(得分:4)

您可以使用combine_first

df
Out: 
   col1  col2  col3  col4
0   NaN   NaN   3.0     4
1   1.0   2.0   NaN     5

df.loc[0].combine_first(df.loc[1])
Out: 
col1    1.0
col2    2.0
col3    3.0
col4    4.0
Name: 0, dtype: float64

以指定的格式:

df.loc[0].combine_first(df.loc[1]).to_frame('Row1-2').T
Out: 
        col1  col2  col3  col4
Row1-2   1.0   2.0   3.0   4.0

替代方案:

df.loc[[0]].fillna(df.loc[1])
Out: 
   col1  col2  col3  col4
0   1.0   2.0   3.0     4

来自@MaxU的更简洁的填充版本:

df.bfill().iloc[[0]]
Out: 
   col1  col2  col3  col4
0   1.0   2.0   3.0     4