微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从同一个文件连接多个Excel工作表?

我有一个包含许多不同表格的大型Excel文件.所有床单都具有相同的结构,如:

Name
col1  col2  col3  col4
1     1     2     4
4     3     2     1

>如何在Pandas中连接(垂直)所有这些工作表,而无需手动命名每个工作表?如果这些是文件,我可以使用glob来获取目录中的文件列表.但在这里,对于excel表,我迷路了.
>有没有办法在结果数据框中创建一个变量来标识数据来源的工作表名称

谢谢!

解决方法:

试试这个:

dfs = pd.read_excel(filename, sheetname=None, skiprows=1)

这将返回一个DF字典,您可以使用pd.concat(dfs)轻松连接,或者@jezrael已经在他的答案中发布:

df = pd.concat(pd.read_excel(filename, sheetname=None, skiprows=1))

sheetname:无 – >所有工作表都是DataFrames的字典

更新:

Is there a way to create a variable in the resulting dataframe that
identifies the sheet name from which the data comes from?

dfs = pd.read_excel(filename, sheetname=None, skiprows=1)

假设我们有以下dict:

In [76]: dfs
Out[76]:
{'d1':    col1  col2  col3  col4
 0     1     1     2     4
 1     4     3     2     1, 'd2':    col1  col2  col3  col4
 0     3     3     4     6
 1     6     5     4     3}

现在我们可以添加一个新列:

In [77]: pd.concat([df.assign(name=n) for n,df in dfs.items()])
Out[77]:
   col1  col2  col3  col4 name
0     1     1     2     4   d1
1     4     3     2     1   d1
0     3     3     4     6   d2
1     6     5     4     3   d2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐