簡體   English   中英

計算每行列值的總和但不包括每個值

[英]Calculate the sum of column values per row but not include every value

所以我有這個看起來像這樣的數據集。

ID 某物 1號 2號 3號 4號 5號 6號 sum_columns
1個 105 1個 2個 3個 4個 4個
2個 300 2個 1個 1個 33 6個 2個 6個
3個 20 1個 5個 3個 3個

現在我需要計算以“數字”開頭的列值的總和,但只包括 1-5 范圍內的值。

所以最終的數據集看起來像這樣:

ID 某物 1號 2號 3號 4號 5號 6號 sum_columns 總和值
1個 105 1個 2個 3個 4個 4個 10
2個 300 2個 1個 1個 33 6個 2個 6個 6個
3個 20 1個 5個 3個 3個 9

我知道我可以像這樣計算包含數字的列的總和:

df['values_sum']=df.filter(like='number').sum(axis=1)

但問題是如何只包含 1-5 范圍內的列中的值。

使用DataFrame.where過濾值小於6並替換不匹配到0

df1 = df.filter(like='number')
df['values_sum'] = df1.where(df1.lt(6),0).sum(axis=1)

#if need values only range(1,6)
#df['values_sum'] = df1.where(df1.isin(range(1, 6)),0).sum(axis=1)
print (df)
   id  something  number1  number2  number3  number4  number5  number6  \
0   1        105        1      NaN      NaN      2.0        3        4   
1   2        300        2      1.0      1.0     33.0        6        2   
2   3         20        1      NaN      NaN      NaN        5        3   

   sum_columns  values_sum  
0            4        10.0  
1            6         6.0  
2            3         9.0  

暫無
暫無

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

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