Pandas:尝试 join() 两个大型数据帧后内核意外死亡

Joe*_*hat 6 python kernel dataframe pandas jupyter-lab

我正在尝试使用以下方法连接共享相同索引的两个数据集:

merged_data = df1.join(df2)
Run Code Online (Sandbox Code Playgroud)

然而,内核不断死亡。我尝试重新启动我的笔记本(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
Run Code Online (Sandbox Code Playgroud)

关于 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
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

我确实需要所有条目和列。除了索引之外,数据框不共享公共列。

如果值得了解的话...我使用的是配备 2.7 GHz 双核 Intel Core i5(处理器)和 8 GB 1867 MHz DDR3(内存)的 MacBook Pro(2015 年初)

小智 1

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

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