Pandas sum of two columns - dealing with nan-values correctly( pandas 两列之和-正确处理NaN值)
                            本文介绍了 pandas 两列之和-正确处理NaN值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
                        
                        问题描述
在对两个PANAT列求和时,当两列中的一列是浮点型时,我希望忽略NaN值。但是,当NaN出现在两列中时,我希望在输出中保留NaN(而不是0.0)。
初始数据帧:
Surf1     Surf2
0         0
NaN       8
8         15
NaN       NaN
16        14
15        7
所需输出:
Surf1     Surf2     Sum
0         0         0
NaN       8         8
8         15        23
NaN       NaN       NaN
16        14        30
15        7         22
已尝试代码: ->下面的代码忽略NaN-Value,但当取两个NaN-Value的和时,它在输出中给出了0.0,在这种特定情况下,我希望将其保留为NaN,以使这些空值与求和后实际为0的值分开。
import pandas as pd
import numpy as np
data = pd.DataFrame({"Surf1": [10,np.nan,8,np.nan,16,15], "Surf2": [22,8,15,np.nan,14,7]})
print(data)
data.loc[:,'Sum'] = data.loc[:,['Surf1','Surf2']].sum(axis=1)
print(data)
推荐答案
来自documentation pandas.DataFrame.sum
默认情况下,空系列或全NA系列的总和为0。
pd.Series([]).sum()#min_count=0是默认的0.0
这可以通过MIN_COUNT参数进行控制。例如,如果希望空数列的和为NaN,则传递min_count=1。
将代码更改为
data.loc[:,'Sum'] = data.loc[:,['Surf1','Surf2']].sum(axis=1, min_count=1)
输出
   Surf1  Surf2
0   10.0   22.0
1    NaN    8.0
2    8.0   15.0
3    NaN    NaN
4   16.0   14.0
5   15.0    7.0
   Surf1  Surf2   Sum
0   10.0   22.0  32.0
1    NaN    8.0   8.0
2    8.0   15.0  23.0
3    NaN    NaN   NaN
4   16.0   14.0  30.0
5   15.0    7.0  22.0
                        这篇关于 pandas 两列之和-正确处理NaN值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
				 沃梦达教程
				
			本文标题为:pandas 两列之和-正确处理NaN值
				
        
 
            
        
             猜你喜欢
        
	     - CTR 中的 AES 如何用于 Python 和 PyCrypto? 2022-01-01
 - YouTube API v3 返回截断的观看记录 2022-01-01
 - 我如何卸载 PyTorch? 2022-01-01
 - 如何使用PYSPARK从Spark获得批次行 2022-01-01
 - 计算测试数量的Python单元测试 2022-01-01
 - 检查具有纬度和经度的地理点是否在 shapefile 中 2022-01-01
 - 使用公司代理使Python3.x Slack(松弛客户端) 2022-01-01
 - 使用 Cython 将 Python 链接到共享库 2022-01-01
 - 我如何透明地重定向一个Python导入? 2022-01-01
 - ";find_element_by_name(';name';)";和&QOOT;FIND_ELEMENT(BY NAME,';NAME';)";之间有什么区别? 2022-01-01
 
