2017-08-28 11 views
1

私は大きなcsvファイル(4GB以上)に取り組んでいます。パンダのチャンクで関数を記述する方法は?

は、だから私はパンダのチャンク(メモリリーク)

に仕事をしなければならない。しかし、私は(、MIN、MAX、パーセンタイル、...カウント)全データの記述取る方法がわかりません。

がたくさんありがとうございました私は、この問題のためにいくつかのアドバイスをお願いします。その後

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リストを集約する必要があります。

答えて

2

は、あなたがこのような何かを行うことができ、あなたはcsvファイルを持っているとしましょう。カウントは簡単なはず、あなただけの最小値と最大値のために、あなたは

minimum = min([summary[i][3][0] for i in range(len(summary))]) 
maximum = max([summary[i][7][0] for i in range(len(summary))]) 
、すべての番号のリストを作成し、最小数を取る必要があり、そのよう

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

、としてそれを合計する必要があります

パーセンタイルの場合、データセット全体を取り込まないため、少し難しいです。おおよそのパーセンタイルの平均を取ることができます。

+0

パーセンタイルの平均は、実際のパーセンタイルの近似ではありません。そしてあなたはtharのためにどんな良い解決策もありますか?私はカウント、最大、分のあなたのソリューションを知っているが、それは本当にconvinientではない –

+0

ええ、それは実際に近似ではない;)私はちょうどこれの文言が必要でした。カウント、最大値、最小値の解をすでに知っているのであれば、どうしてあなたの質問にこれを書かなかったのですか? –

+0

それは本当に良いとは思えません。私は、組み込みのコードから少なくともコードを継承するソリューションを探したい。私のコードはそれほど良くないと思います。各チャンクとサマリallに対してsum/max/minを使用するのは難しくありません。それを実感できますか? –

関連する問題