簡體   English   中英

Pandas:對多個列求和,但如果該行中的任何列為NaN或0,則寫入NaN

[英]Pandas: Sum multiple columns, but write NaN if any column in that row is NaN or 0

我正在嘗試在pandas數據框中創建一個新列,該列對其他列的總和進行求和。 但是,如果任何源列為空(NaN或0),我需要將新列寫為空白(NaN)

a    b    c    d    sum

3    5    7    4    19
2    6    0    2    NaN    (note the 0 in column c)
4    NaN  3    7    NaN

我目前正在使用pd.sum函數,格式如下

 df['sum'] = df[['a','b','c','d']].sum(axis=1, numeric_only=True)

它會忽略NaN,但不會將NaN寫入sum列。

提前感謝任何建議

replace你的0 replacenp.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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM