我有一个带有两列的datframe bankdat,一列是str格式的日期,另一列是浮点数。我想用pandas和matplotlib生成一个图,x轴是日期,y轴是浮点数。我使用
将字符串转换为日期bankdat['Buchungstag'] = pd.to_datetime(bankdat['Buchungstag'])
当我现在尝试使用
绘制我的数据框时bankdat.plot()
plt.show()
我在x轴上得到数字而不是日期:
我做错了什么?谢谢您的帮助 PS:我是编码和堆栈溢出的新手,如果你指出我的错误,我将非常感激
编辑:感谢您的建议。不幸的是,使用set index会产生这个图:fig2。我使用的分布不同于建议吗?
EDIT2。 我使用
从csv文件获取数据帧ausgaben = pd.read_csv('asd.csv', encoding = 'ISO-8859-1',sep=';', skiprows=6,usecols=[0,7])
之后,我使用
添加第一行bankdat = pd.DataFrame(np.array([[np.nan, '10000']]), columns=[ausgaben.columns[0], ausgaben.columns[1]]).append(ausgaben)
感谢您指出日期排序,我甚至没有进入"思考天气我的数据有意义"阶段。数据框如下所示: example 3,并导出到csv给出
,Betrag (EUR),Kontostand
,4130.96,4130.96
2016-12-23,-65.0,4065.96
2016-12-20,520.0,4585.96
2016-12-19,-29.5,4556.46
2016-09-12,-1000.0,3556.46
按照Dmitry Polonskiy的建议解决:"可能是您将NAT作为日期列中的第一个日期。试试这个bankdat.Buchungstag.shift(1).plot()"。谢谢yoyur的帮助!
答案 0 :(得分:0)
bankdat.set_index(['Buchungstag'], inplace = True)
bankdat.index.name = None
bankdat.Buchungstag.plot(figsize=(10,6), title = 'Title', fontsize = 16)