Панды: количество вхождений в пользовательском временном интервале и самое активное время для определенных дней - PullRequest
0 голосов
/ 05 июня 2018

Я довольно новичок в стеке и пандах и не смог найти ничего подобного этому, это кажется более сложным, чем обычные операции, и я хотел бы узнать, как это сделать:

The data set:

Day       Messages   Time 
Friday    spam       8:05 AM
Tuesday   eggs       8:45 AM
Friday    smapeggs   9:03 AM
Monday    eggseggs   1:05 PM
Tuesday   baz        8:33 AM
Monday    eggsspam   2:25 PM

Желаемый результат 1:

Time ranges  Number of Messages
8:00-9:00 AM       3
9:00-10:00 AM      1
1:00-2:30 PM       2

Требуемый выход 2:

Day         Most Active Time
Friday         8:00-10:00 AM 
Tuesday        8:00-9:00 AM 
Monday         1:00-2:30 AM

Идея состоит в том, чтобы увидеть, какие часы наиболее отзывчивы в целом и какие часы наиболее чувствительны для определенных дней.Заранее спасибо!

1 Ответ

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

Попробуйте следующее:

df_start=pd.DataFrame({ 'Day' :['Friday','Tuesday','Friday','Friday'],
                        'Message':['spam','msg','eggs','another'],
                        'Time':['8:05 AM','9:45 AM', '10:34 AM', '8:45 AM']})
df_start=df_start.set_index('Time')
df_start.index = pd.to_datetime(df_start.index)
df_result=df_start.resample("2h").count().loc[:,'Message']

Для второго вывода попробуйте использовать следующее:

df_result=df_start.groupby("Day").apply(lambda df_start: 
                 df_start.resample("2h").count())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...