微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对包含 Nan 的缺失值

如何解决对包含 Nan 的缺失值

我正在跟进几年前提出的问题:herehere

我想对 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 值对我来说是个问题。因为稍后,如果我将 mean()col_sum 带上 0Nan 会给出完全不同的结果(或者不是吗??) .

解决方法

使用 Series.addfill_value 参数:

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

或带有 sum 参数的 min_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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。