2016-08-27 5 views
0

大きなデータセットを持つcsvファイルがあるとします。このcsvファイルはDBから作成されました。つまり、本質的にテーブルです。このcsvファイルを反復処理し、平均値または合計を計算するか、またはPythonを使用して一般計算を行う最良の方法は何でしょうか?CSVから大きなデータセットを計算する

例:csvファイルには、ユーザーIDと金額と日付が関連付けられています。今私は毎月の支出をすべてのユーザーを計算する必要があります。ユーザーIDがプライマリキーではなく、そのユーザーが購入した可能性があることに注意してください。

パンダなどを使用してデータを読み込む方法を教えてください。

+0

私がすることを好みますdbに接続してそれらを照会するが、csvファイルを読む:https://docs.python.org/2/library/csv.html –

答えて

1

あなたは間違いなく、私はあなたの問題の説明から理解するものから、あなたのcsvファイルは次のようにフォーマットされ、パンダを試すことができます。

user_id amount date 
1241 1000 01/Aug/2016 
.... ... .... 

これは、毎月の総支出をを計算することで開始するには良い十分な解決策になるはずですuser_idの

df = pd.read_csv('your_csv_filename_path.csv') 

df.loc[:,'date'] = pd.to_datetime(df.loc[:,'date']) 
df.loc[:,'month'] = pd.PeriodIndex(df['date'],freq='M') 
monthly_spendings = df.groupby(['month','user_id'])['amount'].sum() 
+0

それは正しい。ありがとう。 – Jason

0

あたりのcsvモジュールは、CSVファイルから読み込むすることが容易になります。たとえば、CSVファイルの最初の行は列名が含まれており、それらの列名の1が「USER_ID」であれば、次の行は、各ラインからのuser_idフィールドを表示するかどうか:

import csv 
for rec in csv.DictReader(open("somefile.csv", "rb")): 
    print("User ID = {}".format(rec["user_id"])) 
関連する問題