Необходимо сгруппировать данные, используя pandas на основе месяцев в столбце данных - PullRequest
1 голос
/ 24 апреля 2020

Я бы хотел сгруппировать данные по месяцам январь и февраль. Вот пример набора данных, который у меня есть.

   Date       Count

01.01.2019       1  
01.02.2019       7  
02.01.2019       4  
03.01.2019       4  
04.01.2019       1  
04.02.2019       5

Я хочу сгруппировать данные следующим образом, где общее количество суммируется по месяцам 1 (январь) и 2 (февраль) :

Month  Total_Count
Jan       10
Feb       12

1 Ответ

1 голос
/ 24 апреля 2020

Приведение к дате и времени, сгруппированные по dt.month_name и sum:

(df.groupby(pd.to_datetime(df['Date'], format='%d.%m.%Y')
   .dt.month_name()
   .str[:3])['Count']
   .sum()
   .rename_axis('Month')
   .reset_index(name='Total_Count'))

  Month  Total_Count
0   Feb           12
1   Jan           10

Чтобы отсортировать индекс по месяцам, мы вместо этого можно сделать:

s = df.groupby(pd.to_datetime(df['Date-'], format='%d.%m.%Y-').dt.month)['Count'].sum()
s.index = pd.to_datetime(s.index, format='%m').month_name().str[:3]
s.rename_axis('Month').reset_index(name='Total_Count')

  Month  Total_Count
0   Jan           10
1   Feb           12
...