pandas - 我正在尝试使用 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
解决方案
您是否尝试单独运行合并?你可以在没有内存错误的情况下进行第一次合并吗?您可以尝试将单元格拆分为两个不同的单元格,并使用 del 从内存中删除前两个数据帧(gcs_e_df 和 gcs_m_df),然后再进行第二次合并。
可能造成问题的另一件事是,如果您的表中有重复的 ['charttime', 'subject_id'] :这将完全耗尽内存,因为您将多次加入每一行,并且数据框的大小将成倍增加
推荐阅读
- html - 插入文本旁边的插入符号而不是 contenteditable div 上的跨度
- android - 如何将文件列表作为 Retrofit 2 正文的一部分与 Android 中的其他常规字符串字段一起发送?
- r - R tmap 动态修改图例以防止图例值重叠
- google-apps-script - 根据过滤范围将数据从电子表格复制到另一个
- java - 如何在 XMLGregorianCalendar 中删除时间戳
- spring - 春季启动:禁用记录器
- java - 从firebase android中删除自动关键节点
- .net - 如何在不将密钥存储在代码或 appconfig 中的情况下使用 Azure Key Vault 对应用程序进行身份验证?
- java - 当我打开一个模块时它崩溃
- sql-server - Excel VBA ADODB RecordSet 从 SQL Server 更改字段类型