Python 熊猫:对多个列求和,但如果该行中的任何列为NaN或0,则写入NaN
我试图在pandas dataframe中创建一个新列,它将其他列的总数相加。但是,如果任何源列为空(NaN或0),我需要将新列也写为空(NaN) 我目前正在使用pd.sum函数,格式如下Python 熊猫:对多个列求和,但如果该行中的任何列为NaN或0,则写入NaN,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我试图在pandas dataframe中创建一个新列,它将其他列的总数相加。但是,如果任何源列为空(NaN或0),我需要将新列也写为空(NaN) 我目前正在使用pd.sum函数,格式如下 df['sum'] = df[['a','b','c','d']].sum(axis=1, numeric_only=True) 忽略NaN,但不将NaN写入sum列 提前感谢您的建议将您的0替换为np.nan,然后传递skipna=False df.replace(0,np.nan).sum(1,ski
df['sum'] = df[['a','b','c','d']].sum(axis=1, numeric_only=True)
忽略NaN,但不将NaN写入sum列
提前感谢您的建议
将您的0替换为np.nan
,然后传递skipna=False
df.replace(0,np.nan).sum(1,skipna=False)
0 19.0
1 NaN
2 NaN
dtype: float64
df['sum'] = df.replace(0,np.nan).sum(1,skipna=False)
这很有效,非常感谢!很明显,我有很多关于熊猫的知识需要学习,所以我很感谢大家的帮助!
df.replace(0,np.nan).sum(1,skipna=False)
0 19.0
1 NaN
2 NaN
dtype: float64
df['sum'] = df.replace(0,np.nan).sum(1,skipna=False)