2016-08-27 3 views
0

Допустим, у меня есть файл csv с большим набором данных. Этот файл csv был создан из базы данных, то есть, по существу, это таблица. что было бы лучшим способом перебора этого файла csv и вычисления среднего или суммарного или общего вычисления с использованием Python?Вычисление большого набора данных из CSV

Например: файл csv имеет идентификатор пользователя и количество и дату, связанные с ним. Теперь мне нужно рассчитать ежемесячные расходы каждого пользователя. Обратите внимание, что userid не является первичным ключом и этот пользователь мог купить

Как загружать данные, используя панды или что-то еще?

+0

Я предпочел бы, чтобы подключитесь к db и запросите их, но чтобы прочитать файл csv: https://docs.python.org/2/library/csv.html –

ответ

1

Вы, безусловно, можете попробовать панда, от того, что я понял из вашего описания проблемы, файл CSV отформатирован следующим образом:

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

Это должно быть достаточно хорошим решением, чтобы начать с расчетом суммарной ежемесячной траты per 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

Yup thats correct. Благодарю. – Jason

0

Модуль csv упрощает чтение из файла CSV. Например, если первая строка файла CSV содержит имена столбцов, и если одна из этих названий столбцов «user_id», следующие строки будут отображаться user_id поля из каждой строки:

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