Python - 如何在字符串中绘制日期和时间

时间:2017-06-23 06:52:54

标签: python pandas matplotlib

我有这个数据框

    user_date   user_time
0   Thu         07:32:20
1   Wed         21:10:38
2   Fri         21:32:55
3   Sat         11:57:36
4   Fri         22:37:41

如何用x绘制这个数据帧是user_time,范围是24小时,y是user_date。

与此同时,非常感谢您的关注和参与。

1 个答案:

答案 0 :(得分:1)

user_date值存在问题,因为如果使用strings获取:

  

TypeError:清空' DataFrame':没有要绘制的数字数据

一种可能的解决方案是将它们转换为ordered categorical并按cat.codes绘制。

另外,地图timedelata未实施,因此user_time已转换为to_datetime,然后strftime转换为string

days = ['Mon','Tue','Wed','Thu','Fri','Sat','Sun']
df['user_date'] = df['user_date'].astype('category', categories=days, ordered=True)

df['user_time1'] = pd.to_datetime(df['user_time']).dt.strftime('%H:%M:%S')
df['user_date1'] = df['user_date'].cat.codes

ax = df.plot(x='user_time1', y='user_date1')

#set max and min values of axis
#https://stackoverflow.com/a/43460067/2901002
ax.set_yticks(range(7))
ax.set_yticklabels(days)

graph