Как разделить датафреймы по бинам Ночи, утра, дня, вечера и подсчитать, сколько строк каждая сессия и граф подсчитывают панд - PullRequest
1 голос
/ 19 апреля 2019

У меня есть датафрейм для деления данных на night morning afternoon и evening, после чего я хочу посчитать, сколько строк для ночи, утреннего дня и вечера и гистограммы для подсчета. Теперь я пытаюсьэтот код работает нормально, но с 00:01 до 00:59 получается пустой столбец сеанса.

df=df.assign(session=pd.cut(df.Time.dt.hour,[0,6,12,18,23],labels=['Night','Morning','Afternoon','Evening']))

Вот результат enter image description here

1 Ответ

1 голос
/ 19 апреля 2019

Используйте параметр include_lowest=True в cut:

df=df.assign(session=pd.cut(df.Time.dt.hour,
                            [0,6,12,18,23],
                            labels=['Night','Morning','Afternoon','Evening'],
                            include_lowest=True))

А затем Series.value_counts с Series.plot.bar:

df['session'].value_counts().plot.bar()

Или:

session=pd.cut(df.Time.dt.hour,
               [0,6,12,18,23],
               labels=['Night','Morning','Afternoon','Evening'],
               include_lowest=True)


session.value_counts().plot.bar()

Образец :

rng = pd.date_range('2017-04-03', periods=100, freq='30T')
df = pd.DataFrame({'Time': rng})  
#print (df)

session=pd.cut(df.Time.dt.hour,
               [0,6,12,18,23],
               labels=['Night','Morning','Afternoon','Evening'],
               include_lowest=True)


session.value_counts().plot.bar()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...