У меня есть набор данных следов журнала, мне нужно просмотреть это в соответствии с запросами в минуту, я превратил его в панды, как это,
year month day hour Requests count
0 2018 6 1 0 114710.0
1 2018 6 1 1 115735.0
2 2018 6 1 2 130116.0
3 2018 6 1 3 133225.0
4 2018 6 1 4 128355.0
upto 24 Hour means whole day,
поскольку мы видим, что каждый час имеет миллионы запросов, поэтому я хочу просмотреть его в минуту. Я могу использовать этот скрипт,
df['count'] = df.groupby(df.date.dt.minute)['requests'].count()
то он вернет 60 значений, но проблема в том, что я хочу 60-минутные значения каждого часа с последовательностью, чтобы он стал 60 * 24 = 1440
requests per mins
, любая помощь будет оценена, спасибо
фактические данные имеют миллионы значений с меткой времени
В образцах данных нет столбца date
, но, похоже, требуется dt.hour
:
rng = pd.date_range('2017-04-03 10:10:12', periods=100, freq='120T')
df = pd.DataFrame({'date': rng, 'requests': range(100)})
#print (df)
df1 = df.groupby([df.date.dt.minute.rename('min'),
df.date.dt.hour.rename('hour')])['requests'].count()
print (df1)
min hour
10 0 8
2 8
4 8
6 8
8 8
10 9
12 9
14 9
16 9
18 8
20 8
22 8
Name: requests, dtype: int64