【发布时间】:2018-05-15 07:09:20
【问题描述】:
我有一个名为 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_date。 tenant_id 是 long 格式,tenant_date 是 datetime64 格式
我用这段代码来计算它:
output = data_1.groupby(['tenant_id']).apply(lambda x: x.nsmallest(1, 'tenant_date')).reset_index(drop=1)
这对于较小的数据集非常有效,但我的 data_1 包含大约 2 亿行。这段代码永远不会完成。我有足够的内存和大约 244 GB 的 RAM。
有没有更有效的方法可以快速做到这一点?
【问题讨论】:
标签: python pandas pandas-groupby