Python 熊猫:读取特定列的excel文件,删除空行,创建CSV
我试图读取一个包含.xlsm文件的文件夹,获取a:J列,删除所有空行,然后将每个excel文件合并成一个CSV。当我只使用一个特定的excel文件时,下面的代码似乎有效,但在循环时出现错误。任何帮助都将不胜感激Python 熊猫:读取特定列的excel文件,删除空行,创建CSV,python,excel,pandas,loops,csv,Python,Excel,Pandas,Loops,Csv,我试图读取一个包含.xlsm文件的文件夹,获取a:J列,删除所有空行,然后将每个excel文件合并成一个CSV。当我只使用一个特定的excel文件时,下面的代码似乎有效,但在循环时出现错误。任何帮助都将不胜感激 import pandas as pd import os import glob # defines the folder to pull from and to save into source = r"C:\Users\bwendt\QAR" #defines list of
import pandas as pd
import os
import glob
# defines the folder to pull from and to save into
source = r"C:\Users\bwendt\QAR"
#defines list of files as dir and changes directory to source
os.chdir(source)
files = glob.glob(source + "/*.xlsm")
MultiRents = []
#loops through list of file paths, reads the file, removes blank cells, and adds to data frame
for f in files:
data = pd.read_excel(f,"Page2",usecols = "A:J")
#data.dropna(axis=0, how='any', thresh=None, subset=None, inplace=True)
MultiRents.append(data)
#create pandas DF
df = pd.DataFrame.from_records(MultiRents)
#Exports dataframe to a csv file
export_csv = df.to_csv("Multifamily_Rents.csv")
回溯:回溯(最近一次呼叫最后一次):
文件“”,第1行,在
runfile('C:/Users/bwendt/.spyder-py3/Print_rents.py',wdir='C:/Users/bwendt/.spyder-py3')
文件
“C:\Users\bwendt\AppData\Local\Continuum\anaconda3\lib\site packages\spyder\u kernels\customize\spyderrcustomize.py”,
第827行,在runfile中
execfile(文件名、命名空间)
文件
“C:\Users\bwendt\AppData\Local\Continuum\anaconda3\lib\site packages\spyder\u kernels\customize\spyderrcustomize.py”,
第110行,在execfile中
exec(编译(f.read(),文件名,'exec'),命名空间)
文件“C:/Users/bwendt/.spyder-py3/Print_rents.py”,第21行,在
数据=pd.read\u excel(f,“第2页”,usecols=“A:J”)
文件
“C:\Users\bwendt\AppData\Local\Continuum\anaconda3\lib\site packages\pandas\util\u decorators.py”,
第188行,在包装器中
返回函数(*args,**kwargs)
文件
“C:\Users\bwendt\AppData\Local\Continuum\anaconda3\lib\site packages\pandas\util\u decorators.py”,
第188行,在包装器中
返回函数(*args,**kwargs)
文件
“C:\Users\bwendt\AppData\Local\Continuum\anaconda3\lib\site packages\pandas\io\excel.py”,
第350行,在read_excel中
io=ExcelFile(io,engine=engine)
文件
“C:\Users\bwendt\AppData\Local\Continuum\anaconda3\lib\site packages\pandas\io\excel.py”,
第653行,在init
self.\u读取器=self.\u发动机发动机
文件
“C:\Users\bwendt\AppData\Local\Continuum\anaconda3\lib\site packages\pandas\io\excel.py”,
第424行,在init
self.book=xlrd.open_工作簿(文件路径或缓冲区)
文件
“C:\Users\bwendt\AppData\Local\Continuum\anaconda3\lib\site packages\xlrd\uuuuu init\uuuuuu.py”,
第157行,在open_工作簿中
参差不齐的行=参差不齐的行
文件
“C:\Users\bwendt\AppData\Local\Continuum\anaconda3\lib\site packages\xlrd\book.py”,
第92行,在打开的工作簿中
biff\u version=bk.getbof(XL\u工作簿\u全局)
文件
“C:\Users\bwendt\AppData\Local\Continuum\anaconda3\lib\site packages\xlrd\book.py”,
第1278行,在getbof中
bof_错误('预期的bof记录;找到%r'%self.mem[savpos:savpos+8])
文件
“C:\Users\bwendt\AppData\Local\Continuum\anaconda3\lib\site packages\xlrd\book.py”,
第1272行,bof_错误
raise XLRDError('不支持的格式或损坏的文件:'+msg)
XLRDError:不支持的格式或损坏的文件:预期的BOF记录;
找到b'\x0ewent,'
在问题中以正确格式的文本显示完整的回溯。刚刚添加,刚刚习惯这个平台。非常抱歉并感谢您的帮助。对于python 3.7和.xlsx格式,它为我提供了ImportError:在macOS上安装xlrd>=1.0.0 For Excel支持,文件使用数字制作。与.xls格式相同。您的excel文件如何?不确定您所说的“如何”是什么意思,它没有损坏,位于正确的位置。当我使用确切的文件名时,我可以运行此代码,但不能循环多个文件。