我知道 Memors Error 是使用 Pandas 库的不同功能时的常见错误。我想在几个方面获得帮助。在描述了问题之后,我的问题如下制定。
我的操作系统是 Ubuntu 18,工作空间是 Anaconda 框架内的 jupyter notebook,RAM 容量 8Gb。
我解决的任务。
我有超过 100,000 个字典,其中包含用户访问站点的数据,就像这样。
{'meduza.io': 2, 'google.com': 4, 'oracle.com': 2, 'mail.google.com': 1, 'yandex.ru': 1, 'user_id': 3}
有必要从这些数据中形成一个 DataFrame。起初,我使用 append 函数在 DataFrame 中逐行添加字典。
for i in tqdm_notebook(data):
real_data = real_data.append([i], ignore_index=True)
但是玩具数据集显示,这个功能需要很长时间才能完成。然后我直接尝试通过传递一个带有这样的字典的数组来创建一个 DataFrame。
real_data = pd.DataFrame(data=data, dtype='int')
转换少量数据已经足够快了。但是当我将完整的数据集传递给函数 Memory Eror 时出现。我跟踪 RAM 的消耗。该函数不会开始执行,也不会浪费内存。我试图扩展交换文件。但这不起作用,该功能无法访问它。
我知道要解决我的特定问题,我可以将数据分成几部分,然后将它们组合起来。但我不确定我是否知道解决这个问题的最有效方法。
我想了解如何计算 Pandas 操作所需的内存量。从这个题目的题数来看,在读取、合并等时会出现内存错误,是否可以包含一个交换文件来解决这个问题?
如何更有效地解决在DataFrame中添加字典的问题?“追加”工作效率不高。从完整的数据集中创建 DataFrame 效率更高,但会导致错误。我不了解这些过程的实现,但我想弄清楚像我的任务一样转换数据的最有效方法是什么。