gpt4 book ai didi

python - Pandas groupby 索引 : discard entire group if condition is not met

转载 作者:行者123 更新时间:2023-12-02 03:19:46 26 4
gpt4 key购买 nike

我有一个 pandas 数据框,如下所示:

df = pd.DataFrame({'alpha':['a','a','b','b'],'beta':[1,2,3,4]})

enter image description here

这个想法是仅返回列 beta 上满足特定条件的组,否则丢弃整个组

我想要的结果是:

enter image description here

但是,例如。

df.groupby('alpha').apply(lambda x: x.beta>1) 

不起作用。

最佳答案

尝试不使用groupbyisin

df.loc[~df.alpha.isin(df.loc[df.beta<=1,'alpha'])]
Out[316]:
alpha beta
2 b 3
3 b 4

如果确实想要 groupby ,您可以使用 transform ,因为这比传递 lambda 更有效

df[df.beta.gt(1).groupby(df.alpha).transform('all')]
Out[317]:
alpha beta
2 b 3
3 b 4

时间

%timeit df.groupby('alpha').filter(lambda x: (x.beta >1).all())
100 loops, best of 3: 2.53 ms per loop
%timeit df.loc[~df.alpha.isin(df.loc[df.beta<=1,'alpha'])]
1000 loops, best of 3: 874 µs per loop
%timeit df[df.beta.gt(1).groupby(df.alpha).transform('all')]
100 loops, best of 3: 2.04 ms per loop

关于python - Pandas groupby 索引 : discard entire group if condition is not met,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55152600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com