使用pandas.read_csv后无法从DataFrame绘制两列

时间:2016-08-31 11:27:02

标签: python csv pandas

我试图使用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)进行绘图时,它将第三列与第五列进行对比

我现在试图将第三个对第四个进行绘制,当x和y都为2时,它将绘制第三列与第四列,但值不正确,我错过了什么?是read_csv改变列的顺序吗?

1 个答案:

答案 0 :(得分: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) 

得到你想要的东西。