簡體   English   中英

僅對數據框 Pandas 中各列的負數求和

[英]Sum only negative numbers across columns in dataframe Pandas

我只想對數據框中所有列的負數求和。

我看過這篇文章: Pandas:將多列匯總為一列

我的數據如下所示:

但我只想總結負數。 我怎么做?

使用mask

df.iloc[:,1:].where(df.iloc[:,1:]<0).sum(axis=1)

使用apply

df['Sum']=df.apply(lambda x: x[x<0].sum(),axis=1)

另一種方法是使用abs

df['neg_sum'] = df.where(df != df.abs()).sum(1)

我建議你避免apply ; 它可能會很慢。

這將起作用: df[df < 0].sum()

這是我的解決方案,根據我在引用問題中的回答進行了修改:

df = pd.DataFrame({'a': [-1,2,3], 'b': [-2,3,4], 'c':[-3,4,5]})

column_names = list(df.columns)
df['neg_sum']= df[df[column_names]<0].sum(axis=1)

此答案允許按名稱選擇確切的列,而不是采用所有列。

暫無
暫無

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

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