首页 > 解决方案 > 我正在尝试使用 pandas 将非常大的 csv 文件合并在一起并不断耗尽内存。有没有更高效的内存方法来做到这一点?

问题描述

我正在尝试使用 pandas 将非常大的 csv 文件合并在一起并不断耗尽内存。有没有更高效的内存方法来做到这一点?

我尝试使用 Dask Dataframes 而不仅仅是 pandas,但我仍然遇到了同样的问题。

temp_df = dd.merge(gcs_df, dias_fio_df, how='inner', on=['charttime', 'subject_id'])

我得到一个 MemoryError: screenshot_of_error

标签: pandasjupyter-notebookout-of-memoryarray-merge

解决方案


您是否尝试单独运行合并?你可以在没有内存错误的情况下进行第一次合并吗?您可以尝试将单元格拆分为两个不同的单元格,并使用 del 从内存中删除前两个数据帧(gcs_e_df 和 gcs_m_df),然后再进行第二次合并。

可能造成问题的另一件事是,如果您的表中有重复的 ['charttime', 'subject_id'] :这将完全耗尽内存,因为您将多次加入每一行,并且数据框的大小将成倍增加


推荐阅读