2017-08-17 37 views
1

我有兩個來自熊貓情節的奇怪問題。以下是我正在處理的示例數據,它是三個壓力值的數據集。我只是想將這些值繪製爲線圖,日期爲xaxis。日期格式不均勻的線圖繪製和更改

Date D1 D2 D3 
01/01/2017 1013 1013 1013 
02/01/2017 1014 1013.5 1015 
03/01/2017 1014 1014.5 1014 
04/01/2017 1014 1014 1012.4 
05/01/2017 1014 1013.5 1012 
06/01/2017 1014 1014 1012 
07/01/2017 1012 1013 1011.8 
08/01/2017 1012 1012 1011.8 
09/01/2017 1011 1011 1012 
10/01/2017 1012 1012 1013.6 
11/01/2017 1012 1013 1014 
12/01/2017 1013 1013 1013 
13/01/2017 1013 1013 1013 
14/01/2017 1012 1012.5 1012 
15/01/2017 1014.5 1012 1015 
16/01/2017 1014 1014 1015.9 
17/01/2017 1015 1015 1015.4 
18/01/2017 1015 1014 1015.6 
19/01/2017 1014 1014 1015 
20/01/2017 1014 1013 1015.3 
21/01/2017 1014 1014 1014 
22/01/2017 1014 1013 1016 
23/01/2017 1014 1013 1016 
24/01/2017 1014 1013 1016 
25/01/2017 1014 1014 1015 
26/01/2017 1014 1014 1014.7 
27/01/2017 1014 1013 1013.5 
28/01/2017 1013 1012 1013.4 
29/01/2017 1012 1013 1014 
30/01/2017 1012 1014 1014.5 
31/01/2017 1014 1013 1014 
01/02/2017 1014 1014 1012 
02/02/2017 1014 1013 1014 
03/02/2017 1014 1016 1013 
04/02/2017 1014 1014 1015 
05/02/2017 1014 1013 1013 
06/02/2017 1013 1013 1014 
07/02/2017 1015 1014 1013 
08/02/2017 1014 1014 1015 
09/02/2017 1014 1013 1014 
10/02/2017 1014 1013 1013 
11/02/2017 1014 1013 1013 
12/02/2017 1013 1014 1014 
13/02/2017 1013 1014 1014 
14/02/2017 1016 1015.5 1015.6 
15/02/2017 1016 1015.5 1015 
16/02/2017 1016 1015 1012 
17/02/2017 1016 1016 1011.9 
18/02/2017 1014 1016 1012.3 
19/02/2017 1015 1013 1013.4 
20/02/2017 1015 1016 1012.3 
21/02/2017 1014 1015 1010.7 
22/02/2017 1012 1013 1010.7 
23/02/2017 1013 1013 1013.2 
24/02/2017 1014 1013 1013.2 
25/02/2017 1013 1013 1014 
26/02/2017 1014 1014 1014.5 
27/02/2017 1013 1013 1011.3 
28/02/2017 1012 1013 1012.6 

這是最起碼的樣本代碼,我有繪製上述數據

df = pd.read_csv(data_path, index_col=0, parse_dates=True) 
df1 = df[['D1', 'D2', 'D3']] 
plt1 = df1.plot(marker='o', figsize=(16, 9), title=title, grid=True) 

,這裏是陌生的繪圖我: -

enter image description here 你可以看到兩個奇怪的問題從該圖: -

  1. 繪圖是s在開始時甚至不是。

  2. DD:MM:YYYY中的日期格式已更改爲完全不同。

有人能指導我解決上述問題嗎?

+0

如果你擺脫parse_dates'的',相反執行以下操作作爲一個單獨的操作,會發生什麼參數dayfirst=True:'df.index = pd.to_datetime (df.Date,「%d /%m /%Y」)'? – roganjosh

+0

它拋出一個錯誤「DataFrame」對象沒有屬性'Date'# –

+0

爲'index'開關'日期'抱歉。那是我原來編輯它的。所以'df.index' – roganjosh

回答

3

使用pd.read_csv

df = pd.read_csv(data_path, index_col=0, parse_dates=True, dayfirst=True) 
df1 = df[['D1', 'D2', 'D3']] 
plt1 = df1.plot(marker='o', figsize=(16, 9), title=title, grid=True) 

enter image description here

+0

這麼簡單。我認爲這是我在評論中的建議(以迂迴的方式),但顯然它沒有... – roganjosh

+0

謝謝你解決了這個問題。 –

+0

我以前有過這個。 read_csv似乎比數據類型更靈活,比從嵌套列表構建DF更靈活。例如,'read_csv'會將'FALSE''解析爲'False',但如果我嘗試從列表中解析出來,則不會。有沒有一種簡單的方法可以在閱讀csvs之外重新創建csv閱讀器的靈活性?我錯過了一些東西。 – roganjosh