类似于previous question,在使用groupBy之后,我需要对某些数据使用apply函数。
假设我们有以下具有列头A,B,C的数据集:
a 0 2
b 0 3
c 0 4
a 1 1
b 1 2
c 1 5
a 0 3
b 1 2
c 0 1
,并应用以下分组依据:
mydf=df.groupby(['A','B'])['C'].max()
我需要通过过滤器对结果进行过滤,以仅显示C为3的那些,但是会出现错误。
print(mydf.apply(lambda g: g[g['C'] == 3]))
先谢谢您。
答案 0 :(得分:1)
您可以在此处将.loc[]
与lambda
一起使用:
df.groupby(['A','B'])['C'].max().loc[lambda x: x==3]
A B
a 0 3
b 0 3
Name: C, dtype: int64