簡體   English   中英

Pandas DataFrame Groupby:如何統計滿足條件的分組行數

[英]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'])與不同的聚合器( sumcount ),但似乎無法找到一個成功的組合。 有人可以指出我正確的方向嗎?

您可以使用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.

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