我正在阅读以 csv 格式存储的巨大 Pandas(版本 18.1,故意)DataFrame(〜总计 30 GB)。然而,使用 read_csv 时,内存消耗会增长到初始 csv 的两倍。文件 --> 60 GB。我知道这个chunksize
参数。然而,这要慢得多,并且并没有真正减少内存使用量。我用 4 GB 的 DataFrame 尝试过。读取 DataFrame 后,该脚本仍然消耗约 7 GB RAM。这是我的代码:
df = None
for chunk in pandas.read_csv(fn, chunksize=50000):
if df is None:
df = chunk
else:
df = pandas.concat([df, chunk])
Run Code Online (Sandbox Code Playgroud)
这只是一个简短的版本。我还知道,指定数据类型可以节省内存。这是我的问题。读取大熊猫数据帧的最佳方式(性能、内存)是什么?