如何在Python中处理另一个Excel文件
早上好。 我从Python开始,我遇到了一个问题。 我需要找到所有的.xls文件(所有文件都有相同的头)并将所有文件合并到一个数据帧中,所以我需要说应该忽略文件的第一行。 我目前使用的代码是:如何在Python中处理另一个Excel文件,python,excel,pandas,iterable,nonetype,Python,Excel,Pandas,Iterable,Nonetype,早上好。 我从Python开始,我遇到了一个问题。 我需要找到所有的.xls文件(所有文件都有相同的头)并将所有文件合并到一个数据帧中,所以我需要说应该忽略文件的第一行。 我目前使用的代码是: os.chdir("file folder path") fileLista = glob.glob('*.xls') df = list() for arquivo in fileLista: df = df.append(pd.read_excel(arquivo)) Company=
os.chdir("file folder path")
fileLista = glob.glob('*.xls')
df = list()
for arquivo in fileLista:
df = df.append(pd.read_excel(arquivo))
Company= pd.concat(df)
Company.columns = Company.columns.str.strip()
我正在使用Glob返回所有.xls扩展名文件,
append是将所有返回的文件合并到一个数据框中,
concat公司将形成一个单独的文件,
Company strip将删除列标题中的空格。
当我运行代码时,它会返回以下错误:
“错误非类型”对象不可编辑“
有人能帮我解决这个错误吗?这个怎么办
fileLista = glob.glob('*.xls')
Company = pd.DataFrame()
for arquivo in fileLista:
df = pd.read_excel(arquivo)
Company= pd.concat([Company,df])
Company.columns = Company.columns.str.strip()
这应该是你想要的
import pandas as pd
import numpy as np
import glob
glob.glob("C:/your_path_here/*.xlsx")
all_data = pd.DataFrame()
for f in glob.glob("C:/your_path_here/*.xlsx"):
df = pd.read_excel(f)
all_data = all_data.append(df,ignore_index=True)
print(all_data)
这是另一个可以考虑的选项。
import pandas as pd
# filenames
excel_names = ["C:/your_path_here/Book1.xlsx", "C:/your_path_here/Book2.xlsx", "C:/your_path_here/Book3.xlsx"]
# read them in
excels = [pd.ExcelFile(name) for name in excel_names]
# turn them into dataframes
frames = [x.parse(x.sheet_names[0], header=None,index_col=None) for x in excels]
# delete the first row for all frames except the first
# i.e. remove the header row -- assumes it's the first
frames[1:] = [df[1:] for df in frames[1:]]
# concatenate them..
combined = pd.concat(frames)
# write it out
combined.to_excel("c.xlsx", header=False, index=False)
# Results go to the default directory if not assigned somewhere else.
# C:\Users\Excel\.spyder-py3
哪一行触发了错误?您可以共享完整的回溯吗?您是否检查了
glob.glob('*.xls')
的输出。这可能就是你的错误的来源。也不需要df.append
,您已经在迭代fileLista
,只需pd.concat
,就足够了。objs=list(objs)TypeError:“NoneType”对象不可编辑。线路错误'Company=pd.concat(df)'Sim,验证一个saiída do glob.glob e ele estáme retronado os arquivos certos。恩ão devo retirar o df.append?谢谢。您能告诉我如何指示要读取的excel选项卡以及如何忽略第一行吗?我学习了如何使用pd.read\u excel('filename.xls',sheet\u name='tabname',skiprows=1)。当它只是一个文件时,我会这样做,在这种情况下,我怎么能保持这样呢?我不太清楚你在问什么。您可以使用以下命令查询Excel文件:xlfile=pd.ExcelFile(arquivo)
,names=xlfile.sheet\u names
。(另外,如果上面发布的答案可以接受,请点击接受答案。)非常感谢,答案解决了我的问题。