【发布时间】:2018-09-06 10:53:13
【问题描述】:
我正在尝试在直方图中按小时绘制活跃用户数。
这是我的代码:
import pandas as pd
import datetime
from matplotlib import pyplot as plt
data = [datetime.datetime(2000, 1, 1, 11, 5, 44, 233144), datetime.datetime(2000, 1, 1, 12, 5, 45, 175807), ..]
df = pd.DataFrame(data, columns=['Users'])
df.index = pd.to_datetime(df['Users'])
df.groupby(pd.TimeGrouper(freq='60Min')).count().plot(kind='bar', title = 'Activity by Hour', figsize = (10,8))
plt.xlabel('Time')
plt.ylabel('Number of Users')
plt.show()
这很好用,但我最初只得到一天中的时间数据,而不是日期(我在 2000 年 1 月 1 日添加到每个条目中,因为我发现的关于绘制这个的所有内容都使用了 datetimes 和 datetime.time 格式'不起作用;即不能使用pf.to_datetime() 转换为正确的格式,除非您有datetime)。
现在所有的 xtick 标签都是2000_01_01 00:00:00、2000_01_01 01:00:00 等。
我想将它们更改为只是时间(即获取它们,然后切断字符串的第一部分),但我不知道如何做到这一点。
【问题讨论】:
-
您可以通过在编辑器中缩进四个空格将代码行组合在一起
标签: python python-3.x pandas