gpt4 book ai didi

python - pandas dataframe 删除 groupby 中超过 n 行的组

转载 作者:行者123 更新时间:2023-12-05 02:05:43 28 4
gpt4 key购买 nike

我有一个数据框:

df = [type1 , type2 , type3 , val1, val2, val3
a b q 1 2 3
a c w 3 5 2
b c t 2 9 0
a b p 4 6 7
a c m 2 1 8
a b h 8 6 3
a b e 4 2 7]

我想根据列 type1、type2 应用 groupby,并从数据框中删除超过 2 行的组。所以新的数据框将是:

df = [type1 , type2 , type3 , val1, val2, val3
a c w 3 5 2
b c t 2 9 0
a c m 2 1 8
]

最好的方法是什么?

最佳答案

使用 GroupBy.transform 获取 Series 的组数与原始尺寸相同,因此可以按 Series.le 过滤对于 <= boolean indexing :

df = df[df.groupby(['type1','type2'])['type1'].transform('size').le(2)]
print (df)
type1 type2 type3 val1 val2 val3
1 a c w 3 5 2
2 b c t 2 9 0
4 a c m 2 1 8

如果性能不重要或可以使用小的 DataFrame,请使用 DataFrameGroupBy.filter :

df =df.groupby(['type1','type2']).filter(lambda x: len(x) <= 2) 

关于python - pandas dataframe 删除 groupby 中超过 n 行的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63259726/

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