【问题标题】:loop through a list of excel sheets and create different dataframes遍历 Excel 工作表列表并创建不同的数据框
【发布时间】:2023-01-19 22:27:29
【问题描述】:

基本上,我有一个 excel 文件,我必须阅读除前两个之外的所有表格。我曾尝试在 sheet_name 参数上使用列表,但它返回为无效语法。也试过用这个

sheets_dict = pd.read_excel('South America services data.xlsx', sheet_name=None)

all_sheets = []
for name, sheet in sheets_dict.items():
    sheet['sheet'] = name
    sheet = sheet.rename(columns=lambda x: x.split('\n')[-1])
    all_sheets.append(sheet)

full_table = pd.concat(all_sheets)
full_table.reset_index(inplace=True, drop=True)

但是,我想合并它们。

我尝试使用

sheets_dict = pd.read_excel('South America services data.xlsx', sheet_name=([2:]))

但它给了我一个无效的语法错误。 这是错误

File "C:\Users\Windows\AppData\Local\Temp\ipykernel_4036\1764796534.py", line 1
    sheets_dict = pd.read_excel('South America services data.xlsx', sheet_name=([2:]))
                                                                                  ^
SyntaxError: invalid syntax

【问题讨论】:

  • 你能发布完整的堆栈跟踪吗?或者告诉我们你在哪里得到错误?
  • @Kulasangar 刚刚编辑了错误。
  • 你是什​​么意思 - sheet_name=([2:]) ?

标签: python pandas


【解决方案1】:

尝试使用 pd.ExcelFile:

xl = pd.ExcelFile("South America services data.xlsx")

all_sheets = []
for i , name in enumerate(xl.sheet_names):

   if i>=2: # Start reading from the third sheet
       sheet = xl.parse(name)
       sheet['sheet'] = name
       sheet = sheet.rename(columns=lambda x: x.split('
')[-1])
       all_sheets.append(sheet)

full_table = pd.concat(all_sheets)
full_table.reset_index(inplace=True, drop=True)

【讨论】:

    猜你喜欢
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 2023-02-04
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多