[英]Append count of rows meeting a condition within a group to Pandas dataframe
[英]Pandas DataFrame Groupby: How to count the number of grouped rows meeting a condition
我想按“年齡”對行進行分組,並返回一個計數:1)每個組有多少行,2)這些行中有多少符合條件。
給定一個看起來像這樣的 DataFrame:
Age Died
0 26 0
1 26 0
2 27 1
3 28 0
4 28 1
5 28 1
我想返回一個看起來像這樣的 DataFrame:
Age Count Died_Count
26 2 0
27 1 1
28 3 2
我嘗試了各種groupbys
的多種組合,例如groupby(['Age', 'Died'])
與不同的聚合器( sum
, count
),但似乎無法找到一個成功的組合。 有人可以指出我正確的方向嗎?
您可以使用namedagg:
(
df.groupby('Age')
.agg(Count=('Died', 'size'),
Died_count=('Died', 'sum'))
.reset_index()
)
假設您的 dataframe 是df
res=df.groupby("Age").agg({'Age': 'count', 'Died': 'sum'}).rename(columns={"Age":"Count"})
output
Count Died
Age
26 2 0
27 1 1
28 3 2
您也可以重置索引並將 Age 設置為列。
res = res.reset_index(drop=False)
output
Age Count Died
0 26 2 0
1 27 1 1
2 28 3 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.