Pandas:在尝试连接两个大型数据框后,内核意外死亡。

6
我试图使用以下方式将共享相同索引的两个数据集连接起来:
merged_data = df1.join(df2)

然而,内核一直崩溃。我尝试重新启动笔记本(jupyter lab),但我觉得这与其中一个数据帧大小约为2GB有关...
关于df1
<class 'pandas.core.frame.DataFrame'>
Index: 97812 entries, XXXX to XXXX
Data columns (total 19 columns):
dtypes: float64(2), int64(3), object(14)
memory usage: 14.9+ MB

关于df2

<class 'pandas.core.frame.DataFrame'>
Index: 13888745 entries, XXXX to XXXX
Data columns (total 18 columns):
dtypes: int64(16), object(2)
memory usage: 2.0+ GB

如何让这个工作?

我需要所有的条目和列。除了索引以外,这些数据框没有共同的列。

值得注意的是......我正在使用MacBook Pro(2015年初版),配备2.7 GHz双核Intel Core i5(处理器)和8 GB 1867 MHz DDR3(内存)。


这很可能意味着你的内存不足,操作系统会终止内核。尝试逐渐增加数据框的 head(n=x) 部分(例如 x = 10、1000、10000 等),并记录合并头部后内存使用情况的变化;还要查看合并头部的输出,并确认这确实是你想要的方式。 - krassowski
2
有没有远程增加它的方法?在内存方面不是很有经验,想知道是否可以通过使用Web服务器来解决问题? - Joehat
1个回答

1

如果问题确实是由于您的笔记本电脑内存不足导致的,您可以尝试使用类似 dask 的工具。

您可以使用 dask.dataframe.from_pandas 将 pandas 数据框转换为 dask 数据框。然后像普通的 pandas 一样使用 dask 数据框的 .join 方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接