我有一個資料框看起來像
Cnt_A Cnt_B Cnt_C Cnt_D
ID_1 0 1 3 0
ID_2 1 0 0 0
ID_3 5 2 0 8
...
我想計算不為零的列并將結果放入這樣的新列中,
Total_Not_Zero_Cols Cnt_A Cnt_B Cnt_C Cnt_D
ID_1 2 0 1 3 0
ID_2 1 1 0 0 0
ID_3 3 5 2 0 8
...
我確實回圈以獲得結果,但它花了很長時間(當然)。
我想不出在有條件的列之間進行計算的最有效方法:(
先感謝您
uj5u.com熱心網友回復:
檢查每個值是否不等于 0,然后在列軸上求和:
df['Total_Not_Zero_Cols'] = df.ne(0).sum(axis=1)
print(df)
# Output
Cnt_A Cnt_B Cnt_C Cnt_D Total_Not_Zero_Cols
ID_1 0 1 3 0 2
ID_2 1 0 0 0 3
ID_3 5 2 0 8 1
uj5u.com熱心網友回復:
用于ne為非零值生成具有 True 的布爾資料幀,然后使用以下命令將行聚合為整數sum:
df['Total_Not_Zero_Cols'] = df.ne(0).sum(axis=1)
uj5u.com熱心網友回復:
基于 Numpy -
采用 -
np.sum(df!=0, axis=1)
輸出
ID_1 2
ID_2 1
ID_3 3
dtype: int64
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/446227.html
