大熊猫的内存占用量较小?

时间:2013-04-18 21:42:17

标签: python pandas

我有一个大型的熊猫系列(5000万+),我需要用32位Python排序,但我在排序期间得到一个MemoryError。看来pandas的排序算法在排序过程中会产生几个临时数组。我知道我可以使用numpy的排序算法,但是我可以使用的pandas API中有一个替代的排序算法,它具有更小的内存占用量吗?

1 个答案:

答案 0 :(得分:1)

2个可能性

1)这基本上是什么类型,但不使用临时(请注意,如果你在任何地方都有NaN,这将不起作用)

In [1]: s = Series(np.random.rand(10))

In [3]: np.argsort(s.values)
Out[3]: array([8, 0, 1, 3, 9, 6, 2, 7, 5, 4])

In [4]: s[np.argsort(s.values)]
Out[4]: 
8    0.033948
0    0.183882
1    0.236021
3    0.372763
9    0.383721
6    0.489090
2    0.498036
7    0.676246
5    0.709906
4    0.738510
dtype: float64

2)这尚未实现,但您可以写入HDFStore表;有一个readSorted方法以排序顺序读回它。尝试方法1),如果这不起作用,那么我可以给你一个小脚本来做这个我认为