我有df以下格式的熊貓
MATERIAL DATE HIGH LOW
AAA 2022-01-01 10 0
AAA 2022-01-02 0 0
AAA 2022-01-03 5 2
BBB 2022-01-01 0 0
BBB 2022-01-02 10 5
BBB 2022-01-03 8 4
我正在尋求對其進行改造,以便獲得以下結果
MATERIAL HIGH_COUNT LOW_COUNT
AAA 2 1
BBB 2 2
本質上"HIGH_COUNT","LOW_COUNT"我想計算該列大于 0 的出現次數,按 . 分組"MATERIAL"。我已經嘗試過,df.groupby(['MATERIAL']).agg<xxx>但我不確定在agg這里使用的功能。
編輯:
我用了
df.groupby(['MATERIAL']).agg({'HIGH':'count', 'LOW':'count})
但這甚至算0行。
uj5u.com熱心網友回復:
您可以創建一個布爾資料框和groupby sum:
out = df[['HIGH', 'LOW']].gt(0).groupby(df['MATERIAL']).sum().add_suffix('_COUNT').reset_index()
輸出:
MATERIAL HIGH_COUNT LOW_COUNT
0 AAA 2 1
1 BBB 2 2
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/433581.html
標籤:Python 熊猫 数据框 熊猫-groupby
