gpt4 book ai didi

pandas - 使用 pandas 通过 groupby 进行过滤

转载 作者:行者123 更新时间:2023-12-03 07:51:05 25 4
gpt4 key购买 nike

我有一个下面的示例数据框。我想根据数量过滤对用户组的操作。如果我有 50k 用户和 45M 行,下面的操作就可以正常工作。然而,我的数据集要大得多,每次我尝试运行此操作时它都会挂起。对于更大的数据集,是否有更有效的方法来执行相同的任务?

df.groupby('Col1').filter(lambda x: len(x) > 2)

df

Col1 col2 col3 col4
1 a. b. c
1 a. c b
2 c. d. a
3 d. e. a
4 e. d. c
2. c. d. c

最佳答案

您可以将 dataframe.Groupbytransform 结合使用,并创建一个 bool 系列来执行 bool 索引,这可能会更快。试试这个:

import pandas as pd

df = pd.read_clipboard()

df = pd.concat([df]*10_000)

%timeit df.groupby('Col1').filter(lambda x: len(x) > 1)
# 7.81 ms ± 59.8 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

%timeit df[df.groupby('Col1')['Col1'].transform('size') > 1]
# 3.25 ms ± 124 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

关于pandas - 使用 pandas 通过 groupby 进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77146018/

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