Python 熊猫:读取特定列的excel文件,删除空行,创建CSV

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

我试图读取一个包含.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 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文件如何?不确定您所说的“如何”是什么意思,它没有损坏,位于正确的位置。当我使用确切的文件名时,我可以运行此代码,但不能循环多个文件。