对包含 Nan 的熊猫列求和(缺失值)



我正在跟进几年前提出的问题:这里和此处

我想对pandas数据帧中的两列求和,其中两列都包含缺失的值。我浏览了一下互联网,但找不到我想要的精确输出。

我有一个如下的df,我想对col1和col2 求和

col1   col2 
1       NaN      
NaN      1       
1        1     
Nan     Nan  

我想要的输出:

col1   col2    col_sum
1       NaN       1
NaN      1        1
1        1        2
Nan     Nan      Nan

我不想要的:

当简单地使用df['col_sum'] = df['col1'] + df['col2']给我时

col1   col2    col_sum
1       NaN      Nan
NaN      1       Nan
1        1        2
Nan     Nan      Nan

当使用上面(链接的(线程中建议的sum()函数时,会给我

col1   col2    col_sum
1       NaN       1
NaN      1        1
1        1        2
Nan     Nan       0

因此,我希望有缺失值的数字之和输出该数字,两个缺失值之和输出缺失值。把Nan的值当作0对我来说是个问题。因为以后,如果我取col_summean(),它有0Nan,会得到完全不同的结果(或者不是吗?(。

使用Series.addfill_value参数:

df['col_sum'] = df['col1'].add(df['col2'], fill_value=0)

summin_count=1参数:

df['col_sum'] = df.sum(min_count=1, axis=1)

print (df)
0   1.0   NaN      1.0
1   NaN   1.0      1.0
2   1.0   1.0      2.0
3   NaN   NaN      NaN

最新更新