问题描述
我正在尝试对形状为 ~ A - (24482319,33) 和 B - (12029240,165) 的两个相当大的数据集进行 pd.merge。尽管我有 32 个 RAM、Core-i9、带有 2TB SSD 的戴尔 XPS、pandas 内存操作,但这会引发内存错误。优化数据类型后,我尝试检查数据集的相应大小(使用 df.info())和内存使用情况(df.dtypes.memory_usage(deep=True))。结果如下:
df | 尺寸 | 内存使用 |
---|---|---|
A | 3.1+ GB | 6,531 |
B | 6.0+ GB | 34,154 |
详细信息如下:
**A.info()**
-----------
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 24482319 entries,0 to 24482318
Columns: 33 entries,MSISDN to GSM_DECILE
dtypes: category(9),datetime64[ns](3),float32(19),float64(1),object(1)
memory usage: 3.1+ GB
**B.info()**
-----------
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 12029240 entries,0 to 12029239
Columns: 165 entries,MSISDN to MFS_DECILE
dtypes: category(6),datetime64[ns](4),float32(103),int16(25),int8(26),object(1)
memory usage: 6.0+ GB
我相信数据帧 B 是这里的罪魁祸首(即导致内存中操作 pd.merge 失败)所以我的问题是:为什么当 A 为〜它的大小的 2 倍?如何减少内存使用量?
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)