Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用pandas绘制excel数据_Python_Python 3.x_Python 2.7_Pandas_Sklearn Pandas - Fatal编程技术网

Python 使用pandas绘制excel数据

Python 使用pandas绘制excel数据,python,python-3.x,python-2.7,pandas,sklearn-pandas,Python,Python 3.x,Python 2.7,Pandas,Sklearn Pandas,我想使用python中的pandas包在下面的excel文件中绘制数据。我想绘制B列与C列、D列与E列、F列与G列、H列与I列的对比图,而无需将电子表格转换为csv或txt文件。以下是我的代码片段: import pandas as pd import numpy as np file_name = 'datafile.xlsx' df = pd.read_excel(file_name, sheet_name=0, usecols="B:C""D:E""F:G""H:I") #ARRAY

我想使用python中的pandas包在下面的excel文件中绘制数据。我想绘制B列与C列、D列与E列、F列与G列、H列与I列的对比图,而无需将电子表格转换为csv或txt文件。以下是我的代码片段:

import pandas as pd
import numpy as np

file_name = 'datafile.xlsx'
df =  pd.read_excel(file_name, sheet_name=0, usecols="B:C""D:E""F:G""H:I")

#ARRAYS to store data
x_data =[]
y_data = []


# Get the series of the chart column from the dataframe data.
for i in range(len(df.columns)):
    column = i +1
    x_data.append(int(column[1]))

如果您有一些语法问题,我建议您阅读read_excel。此外,如果要绘制数据帧并实际可视化图形,还需要导入matplotlib

为了从excel中正确加载DF,需要指定要加载的列号(0索引)列表。因此,如果要加载列B-I,需要指定usecols=[1,2,3,4,5,6,7,8]。我可以从您的屏幕截图中看到,您没有列标题。除非您另有指定,否则pd将使用第一行作为标题,这将导致您“丢失”第一行数据。此外,如果希望以不同的方式命名列,则在创建DF时需要指定不同的名称。
因此,您的read_excel行应该是:

df = pd.read_excel(file_path, header=None, usecols=[1,2,3,4,5,6,7,8], names=['B', 'C', 'D', 'E','F','G','H','I'])
现在,如果要为x/y轴创建pd.Serie,非常简单:

X = df['B']
Y = df['C']
注意,这些是系列对象,而不是数组(我假设您指的是列表/元组,因为python没有数组作为泛型类型)。您可以轻松地将pd.Serie对象强制转换为其他类型:

x_list = list(X)
y_tuple = tuple(Y)
也就是说,如果您想绘制这两列,可以使用DF的绘制方法并指定轴,如所述:


到目前为止,我尝试使用
df=pd.read\u excel()
命令导入读取数据,但我希望有一个循环,在其中我获取单个列数据,但我首先使用
df=pd.read\u excel(path)
然后
df.plot(x='B',y='C')
我认为这不可行。尝试过,但出现错误您的
usecols
语法不正确。请尝试
usecols=“B,C,D,E,F,G,H:I”
usecols=“[“B:C”,“D:E”,“F:G”,“H:I”]
。此外,
列是一个整数,但您正在像
列[1]
那样索引它。这没有意义。@Tonikami04我可以确认它是否有效。请报告您得到的错误
df.plot(x='B', y='C')
plt.show()