2016-08-31 30 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