我有一个有2列的pandas DataFrame,其中一列是这种格式的日期列表:' 4-Dec-14'另一列是数字列表。我想绘制一个图表,其中包含x轴上的日期和与y轴上的日期对应的数字。散点图或折线图。我试图按照Matplotlib上的教程http://matplotlib.org/users/recipes.html'修复常见日期烦恼'但它不接受我的日期格式。当我尝试使用plot
函数时,它会返回错误:ValueError: invalid literal for float(): 4-Dec-14
。我如何更改日期格式以便它可以正常工作。或者是否有其他方法可以绘制此DataFrame。感谢
答案 0 :(得分:4)
您应该首先将日期列中的字符串转换为实际的日期时间值:
df['date'] = pd.to_datetime(df['date'])
然后您可以通过将日期设置为索引来绘制它:
df = df.set_index('date')
df['y'].plot()
或在图中指定x和y:
df.plot(x='date', y='y')
答案 1 :(得分:1)
尝试将日期列转换为日期索引。尝试这样的事情:
df.index=pd.to_datetime(df.yourdatecolumn,format='%d-%b-%y')
然后您应该能够将数据绘制为:
plt.plot(df.index, df.yournumbercolumn)