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