在Jupyter笔记本上使用pandas加入大型数据帧时发生崩溃

时间:2017-02-16 15:50:43

标签: python csv pandas ipython jupyter-notebook

我第一次和熊猫一起工作。我正在进行一项项目,我每年都会对其进行20多年的观察。每年我有大约一百万个观测值,每个观测值由一个1x80矢量组成。因此,我目前有20个CSV文件,每年一个,大约有1 000 000行,80列。每个CSV文件大约为400 000 Ko。

我想使用pandas join函数将这些文件合并到一个文件中。鉴于数据集不一定具有重叠的观察结果,并且列按年标记,我最终会得到数百万行乘1600(80 * 20)列的CSV文件。

现在,我的问题是每当我尝试通过IPython(使用jupyter笔记本)加入这些文件时我的计算机崩溃,可能是因为它超出了处理连接的能力。它有65 GB可用内存和8 GB RAM。

我使用的代码如下:

import pandas as pd

z = pd.read_csv('path_to_file/Year1.csv', low_memory=False)

for year in [Year 2, Year 3, ..., Year 20]:
    y = pd.read_csv('path_to_file/'+ str(year) + '.csv', low_memory=False)
    y = set_index('observation_name')
    z = z.join(other=y, on='observation_name', how='outer')

z.to_csv('path_to_file/Name.csv')

当我仅在两三年内迭代时,没有显示错误消息并且代码正常工作。但是,当我开始迭代超过四年时,我的计算机只是快速冻结,所以我必须关机。有关信息,在合并前三年后,数据集已经是大约1 500 000行和240列。

有没有人对类似的问题有一些经验?如何有效地加入这些数据集?我应该使用其他语言/具有更多功能的计算机吗?欢迎任何建议。

0 个答案:

没有答案
相关问题