在pandas内存中对DataFrame进行排序是否有效?即,我可以在不将整个内容读入内存的情况下对数据帧进行排序吗?
答案 0 :(得分:2)
在内部,大熊猫依靠numpy.argsort
进行所有排序。
话虽如此:pandas DataFrames由numpy数组支持,这些数组必须作为一个整体存在于内存中。所以,要回答你的问题:否,pandas需要内存中的整个数据集进行排序。
其他想法:
当然可以使用多个步骤实现这种基于磁盘的外部排序:加载一大块数据集,对其进行排序,保存排序后的版本。重复。加载每个已排序子集的一部分,将它们连接到一个DataFrame中并对其进行排序。此处您需要注意每个源的多少。例如,如果您的1000个元素数据集已经排序,那么从10个子集中获取前10个结果将无法获得正确的前100个。但是,它将为您提供正确的前10个。
如果没有关于您的数据的进一步信息,我建议您让一些(关系型)数据库处理所有这些内容。毕竟,它们是为这种东西而制造的。