【发布时间】:2021-05-18 10:29:59
【问题描述】:
我有一个需要使用 Python 加载 excel 文件的问题场景
- 从一个文件夹中加载多个 excel 文件 - 完成
- 每个 excel 文件都有多个工作表 - 完成
- 只需要加载所需的列('接收日期'、'处理日期'、'处理编号'、'任务名称'、'系列'、'办公室'、'部门'、'单位经理'、 'AM'),其他列需要忽略/删除,如果某些工作表中不存在上述列,则不应引发错误。
- 将所有数据加载到单个数据帧中
----- 代码------
import pandas as pd
import os
import glob
def getfilepath():
path = 'C:/Users/Tracking Logs/'
files=(os.listdir(path))
allfiles = glob.glob(path+"*.xlsx")
def getdatafromexcel():
for file in allfiles:
rawdf = pd.read_excel(file,sheet_name=None,na_values='null',keep_default_na=False,dtype=object,date_parser=True)
cols=('Receive Date','Process Date','Process Number','Task Name','Series','Office','Department','Unit Manager','AM/AA/PC')
display(df)
getfilepath()
getdatafromexcel()
【问题讨论】:
-
您可以将
cols传递给您的pd.read_excel函数调用,例如pd.read_excel(...,usecols=cols)注意cols应该是一个列表而不是一个元组,请参阅here -
谢谢@Umar.H,这在我使用元组时有所帮助,现在使用元组后我收到错误消息,说有几列不匹配。在某些情况下,所有工作表都没有这些列,因此我需要忽略加载该特定工作表。
-
我相信你可以弄清楚 :) 你可以使用毯子
tryexcept与列不匹配时显示的错误。 -
是的@Umar.H,让我从这里开始。
-
感谢@Umar.H,我已经发布了。
标签: python-3.x pandas xlrd