【发布时间】:2017-04-27 10:23:26
【问题描述】:
我有大约 140,000,000 条记录的数据集,已存储在数据库中。我需要使用 python 计算这些数据的基本统计数据,例如平均值、最大值、最小值、标准差。
但是当我使用诸如“Select * from Mytable order by ID limit %d offset %d”% (chunksize,offset) 之类的块时,执行需要一个多小时并且仍在执行。参考自How to create a large pandas dataframe from an sql query without running out of memory?
由于需要更多时间,现在我决定只读取少量记录并将使用 pandas.describe() 获得的统计信息保存到 csv 中。同样,对于整个数据,我将有多个仅包含统计信息的 csv。
有没有办法合并这些 csv 以获得 140,000,000 的整个数据的整体统计信息?
【问题讨论】:
-
你不能直接使用数据库来完成这些任务吗?例如。见:blogs.msdn.microsoft.com/zainnab/2009/03/17/…
-
为什么不把csvs打开成pandas,用pandas.concat函数合并数据呢?见:pandas.pydata.org/pandas-docs/stable/merging.html
-
@fgoettel 感谢您将我指向链接。这很有帮助。
-
你的行和列尺寸是多少?
-
@Nickil Maveli Row = 96000000 and columns = 13