gpt4 book ai didi

python - 如何提高对 Pandas 数据框进行聚合操作的速度?

转载 作者:行者123 更新时间:2023-11-28 22:22:38 25 4
gpt4 key购买 nike

我有一个名为 data_1 的 Pandas 数据框,如下所示:

tenant_id  tenant_class_id tenant_date
100 10001 2004-01-10
100 10001 2004-08-25
101 10001 2016-09-20
102 10002 2013-07-12
103 10003 2011-04-05
103 10004 2002-05-05
103 10003 2003-12-26

我的目标是为每个 tenant_id 找到最早/第一个 tenant_datetenant_idlong 格式,tenant_datedatetime64 格式

我使用这段代码来计算它:

output = data_1.groupby(['tenant_id']).apply(lambda x: x.nsmallest(1, 'tenant_date')).reset_index(drop=1)

这适用于较小的数据集,但我的 data_1 包含大约 2 亿行。此代码永远不会完成。我有足够的内存,大约 244 GB 的 RAM。有没有更有效的方法来快速做到这一点?

最佳答案

排序然后使用drop_duplicates。但请务必先将日期列转换为日期时间。

df['tenant_date'] = pd.to_datetime(df['tenant_date'])
df.sort_values(['tenant_id', 'tenant_date']).drop_duplicates('tenant_id')

tenant_id tenant_class_id tenant_date
0 100 10001 2004-01-10
2 101 10001 2016-09-20
3 102 10002 2013-07-12
5 103 10004 2002-05-05

关于python - 如何提高对 Pandas 数据框进行聚合操作的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47588971/

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