pandas结合Excel电子表格

Dan*_*ty2 7 python excel

我有一个包含许多选项卡的Excel工作簿.每个选项卡与其他选项卡具有相同的标头集.我想将每个选项卡中的所有数据合并到一个数据框中(不重复每个选项卡的标题).

到目前为止,我已经尝试过:

import pandas as pd
xl = pd.ExcelFile('file.xlsx')
df = xl.parse()
Run Code Online (Sandbox Code Playgroud)

可以使用某些东西来表示"所有电子表格"的解析参数吗?或者这是错误的方法?

提前致谢!

更新:我试过:

a=xl.sheet_names
b = pd.DataFrame()
for i in a:
    b.append(xl.parse(i))
b
Run Code Online (Sandbox Code Playgroud)

但它不是"有效".

gau*_*den 17

这是一种方法 - 将所有工作表加载到数据框的字典中,然后将字典中的所有值连接到一个数据框中.

import pandas as pd
Run Code Online (Sandbox Code Playgroud)

将sheetname设置为None以将所有工作表加载到数据框的dict中并忽略index以避免以后重叠值(请参阅@bunji的注释)

df = pd.read_excel('tmp.xlsx', sheetname=None, ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

然后连接所有数据帧

cdf = pd.concat(df.values())

print(cdf)
Run Code Online (Sandbox Code Playgroud)

  • 这是一个非常好的答案.只是快速添加:数据帧的索引可能具有重叠值,因此在进行串联时应忽略索引`cdf = pd.concat(df.values(),ignore_index = True) (5认同)