2016-12-27 176 views
1

我有一個數據幀bankdat有兩列,一個是str格式的日期,一個是浮點數。我想用pandas和matplotlib來生成一個plot,其中x軸是日期,y軸是浮點數。在python下使用熊貓,如何使用matplotlib繪製日期?

example

:我使用

bankdat['Buchungstag'] = pd.to_datetime(bankdat['Buchungstag']) 

當我現在嘗試繪圖使用

bankdat.plot() 
plt.show() 

我得到的數字,而不是在我的x軸的日期我的數據框轉換的字符串日期

我在做什麼錯?感謝您的幫助 PS:我是新來的編碼和計算器,如果你指出的東西我有錯

編輯將非常感激:感謝您的建議。不幸的是,使用set索引產生這個圖:fig2。我是否使用不同於建議的分佈?

Edit2。 我使用

ausgaben = pd.read_csv('asd.csv', encoding = 'ISO-8859-1',sep=';', skiprows=6,usecols=[0,7]) 

一個CSV文件中獲取數據幀,我將使用

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 

解決按梅德Polonskiy的建議:」這可能是因爲你有一個NAT在您的日期的第一日期列的事實試試這個bankdat.Buchungstag.shift(1).plot()」。感謝您提供幫助!

+1

'bankdat.set_index('Buchungstag')。plot()'? – MaxU

+0

我編輯了我的問題,謝謝! –

回答

0
bankdat.set_index(['Buchungstag'], inplace = True) 
bankdat.index.name = None 

bankdat.Buchungstag.plot(figsize=(10,6), title = 'Title', fontsize = 16) 
+0

謝謝,不幸的是.buchungstag。格式不適用於我的發行版,使用bankdat ['Buchungstag']給了我一個關鍵的錯誤,我編輯了我的問題與我得到的情節,如果我設置索引。 –

+0

你能展示DF的外觀嗎?就像你說的那樣,Buchungstag列似乎有問題。也好像你的日期是相反的順序,你可能需要對你的DF進行排序,使它按升序排列。 –

+0

我編輯了我的答案,再次感謝! –