Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中处理另一个Excel文件_Python_Excel_Pandas_Iterable_Nonetype - Fatal编程技术网

如何在Python中处理另一个Excel文件

如何在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=

早上好。 我从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= 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
。(另外,如果上面发布的答案可以接受,请点击接受答案。)非常感谢,答案解决了我的问题。