相关疑难解决方法(0)

大错误的MemoryError与Python中的pandas合并

我正在使用pandas outer对一组约1000-2000个CSV文件进行合并.每个CSV文件都有一个标识符列id,该列在所有CSV文件之间共享,但每个文件都有一组3-5列的唯一列.id每个文件中大约有20,000个唯一行.我想要做的就是将这些组合在一起,将所有新列组合在一起并使用id列作为合并索引.

我用一个简单的merge电话来做:

merged_df = first_df # first csv file dataframe
for next_filename in filenames:
   # load up the next df
   # ...
   merged_df = merged_df.merge(next_df, on=["id"], how="outer")
Run Code Online (Sandbox Code Playgroud)

问题是,有近2000个CSV文件,我得到了pandas抛出MemoryErrormerge操作.由于合并操作中的问题,我不确定这是否是一个限制?

最终的数据帧将有20,000行,大约(2000 x 3)= 6000列.这个很大,但不够大,不足以占用我使用的计算机上的所有内存,它有超过20 GB的RAM.对于大熊猫操纵,这个尺寸太大了吗?我应该使用像sqlite这样的东西吗?我是否可以在merge操作中改变它以使其按此规模工作?

谢谢.

python numpy dataframe pandas

10
推荐指数
1
解决办法
4899
查看次数

标签 统计

dataframe ×1

numpy ×1

pandas ×1

python ×1