Python - выходной формат data.to_csv - PullRequest
0 голосов
/ 04 июня 2018

Из файла CSV, имеющего следующий формат:

Date,Data
01-01-01,111
02-02-02,222
03-03-03,333

Я рассчитываю среднемесячные значения, используя следующий код:

data = pd.read_csv("input.csv")
data['Month'] = pd.DatetimeIndex(data.reset_index()['Date']).month
mean_data = data.groupby('Month').mean()

Затем я выводю файл CSVиспользуя следующую команду:

mean_data.to_csv("test.csv")

Он работает нормально и дает мне следующий вывод:

Month,Data
01,01
02,02
03,03
04,04
...

Но теперь я хотел бы знать, сколько данных было включено в среднемесячное значениерасчет.Для этого я изменил:

mean_data = data.groupby('Month').mean()

на:

mean_data = data.groupby(['Month']).agg(['mean', 'count'])

Но проблема возникает сейчас.Когда я хочу вывести CSV, у меня теперь есть странный формат следующим образом:

      Data,Data,
      mean,count,
Month,
01,     01,8,
02,     02,9,
03,     03,7,
04,     04,5,

, что не очень удобно.Вместо этого я хотел бы получить следующий вывод:

Month,Mean,Count
01,01,8
02,02,9
03,03,7
04,04,5

Кто-нибудь знает, как этого добиться?

1 Ответ

0 голосов
/ 04 июня 2018

Нужно указать столбец после groupby:

#convert first column to datetime
data = pd.read_csv("input.csv", parse_dates=[0])

df['Month'] = df['Date'].dt.month
mean_data = data.groupby('Month')['Data'].agg(['mean', 'count'])

должно быть упрощено:

mean_data = data.groupby(df['Date'].dt.month)['Data'].agg(['mean', 'count'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...