我有这个数据框
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。
与此同时,非常感谢您的关注和参与。
答案 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)