我试图以块的形式加载一个较大的bz2文件并将其聚合到pandas DataFrame中,但是Python一直崩溃。我使用的方法如下,在较小的数据集上,我已经成功地使用了该方法。将比内存文件大的文件聚合到Pandas中的更有效方法是什么?
数据是行分隔的json,压缩为bz2,取自https://files.pushshift.io/reddit/comments/(所有公开可用的reddit注释)。
import pandas as pd
reader = pd.read_json('RC_2017-09.bz2', compression='bz2', lines=True, chunksize=100000) df = pd.DataFrame() for chunk in reader:
# Count of comments in each subreddit
count = chunk.groupby('subreddit').size()
df = pd.concat([df, count], axis=0)
df = df.groupby(df.index).sum()
reader.close()
编辑:当我使用chunksize 1e5时,Python崩溃了。当我将块大小增加到1e6时,脚本起作用了。