簡體   English   中英

Pandas DataFrame 分組 select 列基於 Z84E2C64F38F78BA3EA5C905AB5A2DA7

[英]Pandas DataFrame Group-by select column based on boolean condition

我想通過唯一的列名對 dataframe 進行分組,並為每個組計算另一列,但前提是滿足第三列的條件:

這將是三列:

df = pd.DataFrame({'col1':['a','b','b'], 'col2':['c1', 'c2', 'c3'], 'col3':[20,10,20]})

數據框

ToDo:如果 col3 == 20,則計算 col2 以按 col1 分組
我設法通過 3 個步驟做到了:

df = df.set_index(['col1'])
df = df.loc[df['col3']==20,'col2']
df.groupby(level=0).count().idxmax()

但我想知道是否可以在一行中使用 lambda 表達式來做到這一點:)

您可以先過濾,然后分組和計數:

df[df['col3']==20].groupby('col1')['col2'].count()

應用版本

df[df['col3']==20].groupby('col1').apply(lambda row: row['col2'].count())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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