【问题标题】:Combine_first and null values in PandasPandas 中的 combine_first 和 null 值
【发布时间】:2014-08-29 00:40:24
【问题描述】:

df1:

0 1 0 南 3.00 1 -4.00 南 2 南 7.00

df2:

0 1 2 1 -42.00 南 8.00 2 -5.00 南 4.00
df3 = df1.combine_first(df2)

df3:

0 1 2 0 南 3.00 南 1 -4.00 南 8.00 2 -5.00 7.00 4.00

这就是我希望 df3 成为的样子:

0 1 2 0 南 3.00 南 1 -4.00 南 8.00 2 南 7.00 4.00

(区别在df3.ix[2:2,0:0]

也就是说,如果 df1 和 df2 中的任何单元格的列和索引相同,我希望 df1 的值占上风,即使该值是nancombine_first 会这样做,除非 df1 中的值为 nan

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    这是一个有点老套的方法。首先,将df2df1 对齐,这将创建一个以df1/df2 的并集索引的框架,并填充df2 的值。然后分配回 df1 的值。

    In [325]: df3, _ = df2.align(df1)
    
    In [327]: df3.loc[df1.index, df1.columns] = df1
    
    In [328]: df3
    Out[328]: 
        0   1   2
    0 NaN   3 NaN
    1  -4 NaN   8
    2 NaN   7   4
    

    【讨论】:

      猜你喜欢
      • 2016-06-12
      • 2013-02-27
      • 2017-10-18
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      • 2019-05-18
      • 2021-11-20
      • 2015-08-19
      相关资源
      最近更新 更多