【发布时间】:2016-05-10 10:11:18
【问题描述】:
尝试对 Pandas 数据帧进行排序然后将其保存到磁盘时,我在 Python 上遇到“内存错误”。
df = pd.read_hdf('big_df_file.h5')
df.sort_values(by='opt',inplace=True,kind='quicksort')
df.to_hdf('sorted.h5')
我的电脑有 16 Gbs 的 RAM,数据文件是 8 Gb。我不应该能够做到这一点而不会出现“内存错误”吗?
附:我使用的是快速排序,因为它是分配更少内存的排序算法。
Versions:
python: 2.7.11.final.0
python-bits: 64
OS: Windows
OS-release: 10
machine: AMD64
processor: Intel64 Family 6 Model 94 Stepping 3, GenuineIntel
byteorder: little
LC_ALL: None
LANG: en_GB
pandas: 0.17.1
【问题讨论】:
-
什么时候你会收到
MemoryError?您确定它在排序期间而不是在加载数据时给您错误吗? -
@Bakuriu 我放置了一些
print语句,排序时出现错误。 -
numpy.sort的文档指出,对除最后一个轴之外的任何轴进行排序可能会创建数据的临时副本。但是使用普通的numpy我看不到内存有任何大的变化。事实上,即使使用mergesort,我也看不到内存使用量的真正变化。
标签: python pandas sorting bigdata