Chr*_*s90 6 python combinations dataframe python-3.x jupyter-notebook
我正在尝试两行不同的代码,它们都涉及计算 df 与 500k 行的行的组合。
我认为在大量的组合中,内核不断死亡。有办法解决这个问题吗?
崩溃的两行代码是
pd.merge(df.assign(key=0), df.assign(key=0), on='key').drop('key', axis=1)
Run Code Online (Sandbox Code Playgroud)
和
index_comb = list(combinations(df.index, 2))
Run Code Online (Sandbox Code Playgroud)
两者都是实现相同所需 df 的不同方法,但 kernal 都失败了。
将不胜感激任何帮助:/
更新:我尝试在终端中使用代码,它给了我一个错误:killed 9:它在终端中也使用了太多内存?
据我所知,这里没有解决方案。Jupyter Notebook 根本就不是为处理大量数据而设计的。在终端中编译代码,应该可以工作。
\n\n如果您在使用终端时遇到同样的问题,请查看此处:Python Killed: 9 when running a code using dictionaries generated from 2 csv files
\n\n编辑:我最终找到了一种可能解决此问题的方法:增加容器大小应该可以防止 Jupyter 内存不足。为此,请settings.cfg在笔记本的主目录中打开 jupyter 文件$CHORUS_NOTEBOOK_HOME\n 要编辑的行是这一行:
#default memory per container\n\nMEM_LIMIT_PER_CONTAINER=\xe2\x80\x9c1g\xe2\x80\x9d\nRun Code Online (Sandbox Code Playgroud)\n\n默认值应该是每个容器 1 GB,将其增加到 2 或 4 GB 应该有助于解决与内存相关的崩溃。但是我不确定这对性能有什么影响,所以请注意!
\n