一个大的数据文件,我有一个比较大的(1 GB)的文本,我想在尺寸,以减少文件:如何流中,并通过跨类别总结操纵蟒蛇
Geography AgeGroup Gender Race Count
County1 1 M 1 12
County1 2 M 1 3
County1 2 M 2 0
要:
Geography Count
County1 15
County2 23
这将是一件简单的事情,如果整个文件可以适应内存,但使用pandas.read_csv()
给出MemoryError
。所以我一直在研究其他方法,看起来有很多选项 - HDF5?使用itertools
(这看起来很复杂 - 生成器?)或者只是使用标准文件方法读取第一个地理区域(70行),对count列进行求和,然后在另外70行加载之前写出。
有没有人有最好的方法来做到这一点的任何建议?我特别喜欢将数据流式传输的想法,特别是因为我可以考虑很多其他可能有用的地方。我对这种方法最感兴趣,或者同样使用最基本的功能。
编辑:在这个小案例中,我只想要按地理位置计算的总和。但是,如果我可以读取块,指定任何函数(例如,一起添加2列,或按地理位置获取列的最大值),应用函数并在读入新块之前写入输出,那么这将是理想的。
所以你不想在中间的3列? – ayhan
我编辑了一个问题来澄清,谢谢 – HFBrowning
你知道[大熊猫阅读大全](http://pandas.pydata.org/pandas-docs/stable/io.html#iterating-through-files-chunk-by-块)? 'Pd等。read_csv('myfile.csv',chunksize = 1000)'。然后你可以在一个循环内对零件进行操作。 – chrisaycock