[英]How to use python to merge multiple sheets from an excel file and values from particular cells
[英]excel file merge with sheets in python
我正在尝试使用sheet1
和sheet2
附加许多excel文件。 我编写了以下代码:
import os
import pandas as pd
files = os.listdir("C:/Python27/files")
files
df = pd.DataFrame()
for f in files:
data = pd.read_excel(f, 'Sheet1', 'Sheet2')
df = df.append(data)
文件名示例: Total Apr 2014,Total Aug 2014
以下是错误:
Traceback (most recent call last):
File "C:/Python27/filemerge2.py", line 10, in <module>
data = pd.read_excel(f, 'Sheet1', 'Sheet2')
File "C:\Python27\lib\site-packages\pandas\io\excel.py", line 170, in read_excel
io = ExcelFile(io, engine=engine)
File "C:\Python27\lib\site-packages\pandas\io\excel.py", line 227, in __init__
self.book = xlrd.open_workbook(io)
File "C:\Python27\lib\site-packages\xlrd\__init__.py", line 395, in open_workbook
with open(filename, "rb") as f:
IOError: [Errno 2] No such file or directory: 'Total Apr 2014.xls'
Python os.listdir
将返回一个列表,其中包含给定目录中文件的相对名称。 如果您从"C:/Python27/files"
(或您的 xls 文件所在的任何文件夹)以外的文件夹运行脚本,则需要将所需文件的完整路径提供给read_excel()
函数(或您调用的任何文件管理功能)。
要使您的脚本工作,只需将基本文件夹附加到文件名,它应该工作:
import os
import pandas as pd
folder = "C:/Python27/files"
files = os.listdir(folder)
files
df = pd.DataFrame()
for f in files:
data = pd.read_excel(folder + '/' + f, 'Sheet1', 'Sheet2')
df = df.append(data)
请注意, os.listdir
将返回文件folder
所有文件和目录,无论它们的类型如何。 在尝试使用read_excel()
打开它之前,请确保执行一些文件类型检查(或者只在依赖此调用的 for 循环内容周围使用try-except
块)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.