我想使用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]))
答案 0 :(得分:1)
您有一些语法问题,建议您阅读read_excel documentation。另外,如果要绘制DataFrame并实际显示图形,则还需要导入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']
请注意,这些是pandas Serie对象,而不是数组(我假设您的意思是一个列表/元组,因为python没有将数组作为通用类型)。您可以轻松地将pd.Serie对象转换为其他类型:
x_list = list(X)
y_tuple = tuple(Y)
话虽如此,如果您想要绘制这两列,则可以使用DF的绘制方法并指定轴,例如joaquin说:
df.plot(x='B', y='C')
plt.show()