Группировать фрейм данных со столбцом даты и времени по дням недели - PullRequest
0 голосов
/ 11 июля 2019

У меня есть фрейм данных с одним столбцом в формате datetime и другими столбцами в целых числах и числах с плавающей запятой. Я хотел бы сгруппировать данные по рабочему дню первого столбца. Другие столбцы будут добавлены.

print (df)
Day               Butter Bread Coffee
2019-07-01 00:00:00 2   2   4
2019-07-01 00:00:00 1  2   1
2019-07-02 00:00:00 5  4   8

В основном результат будет примерно одинаковым:

print (df)
Day Butter Bread Coffee
Monday 3   4   5
Tuesday 5  4   8

Я проявляю гибкость, если в точности указывается понедельник, или МО или 01 для первого дня недели, если ясно, какое потребление было сделано в понедельник, вторник, среду, четверг, пятницу, субботу и воскресенье.

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

Вы должны преобразовать свой «День» в тип datetime, а затем вы можете извлечь день недели и агрегировать по остальным столбцам:

import pandas as pd
df['Day'] = pd.to_datetime(df['Day'])
df.groupby(df['Day'].dt.day_name()).sum()
0 голосов
/ 11 июля 2019

попробуйте использовать .dt.day_name () и groupby (), sum ()

df = pd.DataFrame(data={'day':['2019-07-01 00:00:00','2019-07-01 00:00:00','2019-07-02 00:00:00'],
                       'butter':[2,1,5],
                       'bread':[2,2,4],
                       'coffee':[4,1,8]}) 
df['day'] = pd.to_datetime(df['day']).dt.day_name()
df.groupby(['day'],as_index=False).sum()

     day    butter  bread   coffee
0   Monday      3      4    5
1   Tuesday     5      4    8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...