一個大的數據文件,我有一個比較大的(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