熊猫:df.groupby()对于大数据集来说太慢了。有替代方法吗?

Els*_* Li 5 python grouping bigdata pandas

df = df.groupby(df.index).sum()

我有一个包含380万行(单列)的数据框,并且我试图按索引对它们进行分组。但是,它需要永远完成计算。是否有其他方法可以处理非常大的数据集?提前致谢!!!!

我正在用Python编写。

数据如下所示。索引是客户ID。我想组qty_liter通过Index

df = df.groupby(df.index).sum()

但是这一行代码花了太多时间.....

在此处输入图片说明

有关此df的信息如下:

df.info()

<class 'pandas.core.frame.DataFrame'> Index: 3842595 entries, -2147153165 to \N Data columns (total 1 columns): qty_liter object dtypes: object(1) memory usage: 58.6+ MB

Joh*_*nck 5

问题是您的数据不是数字。处理字符串比处理数字花费的时间长得多。先试试这个:

df.index = df.index.astype(int)
df.qty_liter = df.qty_liter.astype(float)
Run Code Online (Sandbox Code Playgroud)

然后再做groupby()。它应该快得多。如果是,请查看是否可以修改数据加载步骤以从一开始就拥有正确的 dtype。

  • 只要类别数量不是很大,分类就可以。 (3认同)