График, который показывает частоту дня недели в df - PullRequest
0 голосов
/ 02 сентября 2018

Я получил веб-журнал, показывающий клики и посетителей, и не могу отобразить частоту дней недели из кадра данных в таком формате:

                      date
0      2017-06-03 00:07:04
1      2017-06-03 00:07:06
2      2017-06-03 00:07:07
3      2017-06-03 00:07:24
4      2017-06-03 00:07:38

Я пробовал это:

Date_df = pd.DataFrame(dataset.date)

dates = pd.date_range('2017-06-01','2017-06-07', freq='D')
dates_count = Date_df.groupby(Date_df.date).count()['date']
dates_day_count = pd.DataFrame(dates_count)
dates_day_count = dates_day_count.rename(columns={"date":"Counts"})
dates_day_count.index.rename('date', inplace = True)
dates_day_count.tail()

Но показывает "KeyError: 'date'"

Я хочу знать, в какую часть дня сайт также наиболее загружен (час дня наиболее часто), кто-нибудь?

1 Ответ

0 голосов
/ 02 сентября 2018

Я думаю, что нужно Series.value_counts с dt.date или dt.hour:

print (Date_df)
                 date
0 2017-06-03 00:07:04
1 2017-06-03 00:07:06
2 2017-06-04 00:07:07
3 2017-06-04 00:07:24
4 2017-06-04 00:07:38

dates_day_count = Date_df['date'].dt.date.value_counts().reset_index()
dates_day_count.columns = ['date','counts']
print (dates_day_count)
         date  counts
0  2017-06-04       3
1  2017-06-03       2

Если хотите участок date s, то можете использовать:

dates_day_count = Date_df['date'].dt.date.value_counts()
dates_day_count.plot.bar()

А для hours:

dates_day_count = Date_df['date'].dt.hour.value_counts()
dates_day_count.plot.bar()

Также, если нужны комбинации, например. даты с использованием часов strftime с http://strftime.org/:

dates_day_count = Date_df['date'].dt.strftime('%Y-%m-%d %H').value_counts()
...