【发布时间】:2017-01-30 05:19:41
【问题描述】:
我正在尝试计算在给定日期每小时登录系统的用户数。我的日期类似于:
df=
Name Date
name_1 2012-07-12 22:20:00
name_1 2012-07-16 22:19:00
name_1 2013-12-16 17:50:00
...
name_2 2010-01-11 19:54:00
name_2 2010-02-06 12:10:00
...
name_2 2012-07-18 22:12:00
...
name_5423 2013-11-23 10:21:00
因为我对用户名不感兴趣,所以我删除了该列。我设法使用以下命令创建了一个分组数据结构和一个新的数据框df2
grp = df.groupby(by=[df.Date.map(lambda x: (x.year, x.month, x.day, x.hour))])
df2 = pd.DataFrame({'Count' : grp.size()}).reset_index()
grp 将datetime 类型转换为(year, month, day, hour) 的元组。
我可以使用 for 循环将其转换回 datetime 类型
for i in range(len(df2)):
proper_date = datetime.datetime(*df2['Date'][i])
df2.set_value(i, 'Date', proper_date)
我想知道是否有更好/更有效的方法来解决这个问题?
【问题讨论】:
标签: python datetime pandas time-series hour