【发布时间】:2022-01-06 16:33:24
【问题描述】:
我想将我的数据框从 df1 重新构建到 df2:
df1 像这样:
| id | counts | days |
|---|---|---|
| 1 | 2 | 4 |
| 1 | 3 | 4 |
| 1 | 4 | 4 |
| 2 | 56 | 8 |
| 2 | 37 | 9 |
| 2 | 10 | 7 |
| 2 | 10 | 4 |
df2 像这样:
| id | countsList | daysList |
|---|---|---|
| 1 | '2,3,4' | '4,4,4' |
| 2 | '56,37,10,10' | '8,9,7,4' |
df2 中的 countsList 和 daysList 是一个字符串。
我有大约100万行df1,如果我使用foriter会很慢。
所以我想使用 groupby 并申请来实现它。你有什么解决方案或有效的方法来覆盖它。
我的电脑信息:
CPU:至强 6226R 2.9Ghz 32 核
内存:16G
蟒蛇:3.9.7
【问题讨论】:
-
这仍然会很慢,因为这些字符串聚合并不是特别高效。因此,与计算组均值之类的东西相反,','.joining 字符串的运行时间会随着组的数量而变差。即使它被
.groupby.agg伪装,你也会在组上使用一些慢速 python 循环
标签: python pandas dataframe pandas-groupby