2016-08-31 32 views
2

我試圖繪製已在使用pandas.read_csv,代碼被讀取兩列後,繪製從數據幀兩列: -無法使用pandas.read_csv

from pandas import read_csv 
from matplotlib import pyplot 

data = read_csv('Stats.csv', sep=',') 
#data = data.astype(float) 
data.plot(x = 1, y = 2) 

pyplot.show() 

CSV文件片段: -

1,a4,2000,125,1.9,2.8,25.6 
2,a4,7000,125,1.7,2.3,18 
3,a2,7000,30,0.84,1.1,8.11 
4,a2,5000,30,0.83,1.05,6.87 
5,a2,4000,45,2.8,3.48,16.54 

當x = 1且y = 2,將繪製的第二列靠第四不是第三如我預期

當試圖靠第四(X = 2繪製第三列中, y = 3)它繪製了t對第五

我想繪製第三個對現在的第四個,當x和y = 2它將繪製第三列對第四,但值不正確,我錯過了什麼?是read_csv改變列的順序?

+0

試過df.plot(x ='col_name_1',y ='col_name_2')? –

+0

我找到的解決方法是給'read_csv'函數指定'names = range(number_of_columns)'。但我無法解釋爲什麼自動標籤的工作方式不同。 'y'座標表現爲與'x'座標的偏移,即它以某種方式選擇'x + y'。 – Ascurion

回答

0

您的輸入csv沒有標題,不利於清晰(請參閱Murali的評論)。但我認爲這個問題源於包含a4,a2的列的性質。

此列可用於x軸,但不適用於y軸(x軸上的非數字數據似乎只是按順序讀取)。因此計數偏移。所以當y「讀完」1的列(全部爲0索引) - 但x不是。

開展

data.plot(x=1,y=0) 

data.plot(x=0,y=1) 

和檢查軸有助於想象這是怎麼回事。

奇怪的是,這意味着你可以做

df.plot(x=1,y=1) 

得到你想要的東西。

+1

謝謝,原始的csv確實有標題,但我不能包含它們,我沒有意識到它會讀取a2和4的列,謝謝澄清對我來說它現在的工作 – Alex