【问题标题】:Create Pandas Dataframe from specified columns' names in Excel like pd.read_csv or pd.read_excel从 Excel 中指定列的名称创建 Pandas 数据框,例如 pd.read_csv 或 pd.read_excel
【发布时间】:2020-06-20 15:28:05
【问题描述】:

使用 pd.read_csv 或 pd.read_excel,我可以轻松地从 csv 或 Excel 文件的指定列创建数据框。

但在某些情况下,我只能使用 excel 文件,而 pd.read_excel 工作速度太慢,我听说我们可以使用 Xlwings 来加快速度。

我尝试搜索了很多次,但我找不到如何在 Excel 中从指定列的名称创建 Pandas 数据框(我的文件有数百列,我只需要使用一些列)。 非常感谢您的帮助。

【问题讨论】:

  • 为什么不在 Excel 中只使用 Save as csv,然后使用 read_csv
  • 我们的语言不是英语,保存为 csv 会导致字体错误,我的用户不知道也不想这样做。

标签: pandas dataframe xlwings


【解决方案1】:

熊猫:

您可以使用以下代码读取指定的列名称和值:

 pd.read_excel('path\\filename.xlsx', sheet_name='products', usecols="B:E")

要了解有关“usecols”的更多信息,请参阅documentation

Xlwings:

要通过 pip 或 conda 安装 xlwings,请参阅 documentation

您可以使用以下代码读取指定的列名称和值:

import xlwings as xw 
wb = xw.Book(r'path\\filename.xlsx')
sht = wb.sheets['products'] #add your sheetname of your excel file.
sht.range('B1:E1').value #read specified columns names
output: [' date     ', 'item_id', 'revenue', 'revenue1', 'revenue2']
sht.range('B1:E1').expand().value #read specified columns names & values.
output: [['item_id', 'revenue', 'revenue1', 'revenue2'], [59.0, 22131846.0, 1212.0, 3223.0], [60.0, 22131847.0, 1213.0, 3224.0]]

示例 Excel 表:

我希望这会有所帮助。

【讨论】:

  • 感谢@Jose Praveen,我知道如何使用 USECOLS,但我无法用 xlwings 模仿它。我已经搜索了 xlwings doc,看来我必须指定范围,而不是列名
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-25
  • 2017-12-10
  • 1970-01-01
  • 1970-01-01
  • 2020-04-23
  • 2017-12-03
  • 2021-01-28
相关资源
最近更新 更多