【问题标题】:reading excel to a python data frame starting from row 5 and including headers从第 5 行开始读取 excel 到 python 数据框并包括标题
【发布时间】:2021-06-05 15:13:03
【问题描述】:

如何将 excel 数据导入 python 中的数据框。

基本上,当前的 excel 工作簿在打开时会运行一些 vba,它会刷新数据透视表并执行一些其他操作。

然后我希望将数据透视表刷新的结果导入python中的数据框以进行进一步分析。

import xlrd

wb = xlrd.open_workbook('C:\Users\cb\Machine_Learning\cMap_Joins.xlsm')

#sheetnames
print wb.sheet_names()

#number of sheets
print wb.nsheets

文件的刷新和打开工作正常。但是我如何从第 5 行的第一张表中选择数据,包括标题到最后一条记录 n。

【问题讨论】:

  • 谢谢安迪。我无法让 pd.ExcelFile 与 .xlsm 文件一起使用,并且似乎无法安装应该与 .xlsx 和 .xlsm 文件一起使用的 openpyxl。我只是将我的 vba 更改为另存为 .xls。除了skip_rows = 4部分外,一切正常,但我稍后在python中使用df2 = df [2:]删除了不需要的行
  • 哦。实际上只是用 skiprows = 4 调整了 skip_rows=4 并且那部分也起作用了。万分感谢。如果 .xlsm 文件有效,你会得到一颗银星……金子;)
  • 哎呀我的错!将在github上添加一个关于xlsm文件的问题。

标签: python excel import pandas


【解决方案1】:

可以使用pandas的ExcelFileparse方法读取Excel表格,见io docs

xls = pd.ExcelFile('C:\Users\cb\Machine_Learning\cMap_Joins.xlsm')

df = xls.parse('Sheet1', skiprows=4, index_col=None, na_values=['NA'])

skiprows 将忽略前 4 行(即从行索引 4 开始)和几个 other options

【讨论】:

  • 除此之外pandas.read_excel()也可以用来读取excel文件。与 pandas.ExcelFile() 相同
  • @rwt pd.read_excel 是首选,这个答案早于它!
【解决方案2】:

接受的答案是旧的(如接受答案的 cmets 中所述)。 现在首选选项是使用pd.read_excel()。例如:

df = pandas.read_excel('C:\Users\cb\Machine_Learning\cMap_Joins.xlsm'), skiprows=[0,1,2,3,4])

【讨论】:

    猜你喜欢
    • 2013-07-07
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多