使用Pandas绘制Excel数据

时间:2018-08-04 12:03:08

标签: python python-3.x python-2.7 pandas sklearn-pandas

我想使用python excel data spreadsheet中的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]))

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()