我有一個這樣的excel:
| 年 | 一種 | b |
|---|---|---|
| 2021 | 12 | 23 |
| 2021 | 31 | 0 |
| 2021 | 15 | 21 |
| 2021 | 14 | 0 |
| 2022 | 32 | 0 |
| 2022 | 24 | 15 |
| 2022 | 28 | 29 |
| 2022 | 33 | 0 |
我想計算條件: a>=30 和 b==0 按年分組,最終輸出如下:
2021 1
2022 2
我想使用 pandas 資料框來實作這個,有人可以幫忙嗎?我對python很陌生
uj5u.com熱心網友回復:
對于 count 匹配的行,通過&for bitwiseAND和 aggregate鏈接兩個條件sum,Trues 正在處理 like1和Falselike 0:
df1 = ((df.a>=30) & (df.b==0)).astype(int)
.groupby(df['year']).sum().reset_index(name='count')
print (df1)
year count
0 2021 1
1 2022 2
與幫助列類似的想法:
df1 = (df.assign(count = ((df.a>=30) & (df.b==0)).astype(int))
.groupby('year', as_index=False)['count']
.sum())
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/466667.html
