2017-08-28 76 views
1

我正在處理一個大的csv文件(超過4GB)。如何在大熊貓中調用大塊描述函數?

所以我要對大熊貓的塊(內存泄漏)

工作,但我不知道如何把描述(計數,最小值,最大值,百分位,...)全部數據。

請給我這個問題的一些建議

非常感謝。

回答

2

比方說,你有一個CSV文件,你可以做這樣的事情:

import pandas as pd 

nr_chunk_size = 10 
summary = [] 
df = pd.read_csv('your_file.csv', iterator=True, chunksize=nr_chunk_size) 
for chunck in df: 
    summary.append(chunck.describe().values) 

之後,你需要聚集summary列表。計數應該很容易,你只需要總結一下,例如,

count = sum([summary[i][0][0] for i in range(len(summary))]) 

,最低和最高,你需要創建所有的號碼列表,並採取最小數量,

minimum = min([summary[i][3][0] for i in range(len(summary))]) 
maximum = max([summary[i][7][0] for i in range(len(summary))]) 

對於百分位,有點難度,因爲您不會將整個數據集放入其中。你可以取一個近似值的平均值。

+0

百分位的平均值不是真實百分位數的近似值。你能有更好的解決方案嗎?我知道你的解決方案的數量,最大值,最小值,但它確實不方便 –

+0

這不是一個真正的近似值;)我只需要一個措辭。如果你已經知道count,max和min的解決方案,爲什麼不在你的問題中寫這個...... –

+0

因爲,我認爲這不是很好。我想找到解決方案來繼承內置的至少描述代碼。我認爲我的代碼不太好。對每個塊使用sum/max/min並不難,總結全部。你能意識到嗎? –