如何高效地将大量数据加载到 Pandas 中?

4

我正在处理一个非常广泛的数据集(1005行* 590,718列,1.2G)。将这样一个大型数据集加载到Pandas数据框中会由于内存不足导致代码完全失败。

我知道Spark可能是处理大型数据集的Pandas的一个很好的替代方案,但在加载大数据时,在Pandas中有没有适宜的解决方案来减少内存使用?


2
请问您是否看过 https://dev59.com/cmYq5IYBdhLWcg3wtCzO? - Jörn Hees
1
如果可能的话,请将CSV转换为Parquet格式,并在Spark中使用pyarrow或fastparquet包进行更快的处理。 - args
谢谢。这非常有帮助! - RJF
1个回答

2
您可以使用以下方法:
pandas.read_csv(filename, chunksize = chunksize)

我需要在后面添加块吗?我的数据集太宽了。是否有类似于列的功能,还是应该转置我的df? - RJF
1
你可以使用concat函数来实现如下的编程操作:chunk_df = pd.read_csv(filename, iterator=True, chunksize=chunksize)df = pd.concat(chunk_df, ignore_index=True) - grshankar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接