【问题标题】:Plotting excel data using pandas使用熊猫绘制excel数据
【发布时间】:2018-08-04 12:03:08
【问题描述】:

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

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

【问题讨论】:

  • 到目前为止已经尝试使用df = pd.read_excel() 命令导入读取数据,但我想要一个循环,我可以在其中获取单个列数据但卡住了
  • 先使用df = pd.read_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"]。此外,column 是一个整数,但您正在像column[1] 那样对其进行索引。这没有意义。
  • @Tonikami04 我可以确认它确实有效。请报告您遇到的错误

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


【解决方案1】:

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

为了从 excel 中正确加载 DF,您需要指定要加载的 column-number(0-indexed)列表。因此,如果要加载 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()

【讨论】:

    猜你喜欢
    • 2017-05-28
    • 2022-01-08
    • 2016-01-07
    • 2020-05-31
    • 1970-01-01
    • 2017-10-10
    • 2020-01-14
    • 2017-06-09
    • 2015-02-04
    相关资源
    最近更新 更多