我有一个日志跟踪数据集,我需要根据每分钟的请求查看它,我已经将它转换成这样的大熊猫,
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
,对您有所帮助,谢谢
实际数据具有数百万个带有时间戳的值
答案 0 :(得分:1)
示例数据中没有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