Я пытаюсь добавить 300+ файлов xlsx в один, но получаю следующую ошибку:
AttributeError: 'NoneType' object has no attribute 'is_extension'
Снимок экрана ошибки:
После некоторого поиска в Google я обнаружил, что у кого-то была такая же ошибка, вызванная дублирующимися заголовками. Это определенно возможно с этими файлами, так как они созданы людьми, которые не являются программистами, и я заметил, что это происходило раньше. Но как мне найти, какие файлы исправить? С помощью имени файла я могу сообщить им, какие из них изменить, если у меня нет простого способа обойти это с помощью кода. Просмотр каждого файла вручную не был бы идеальным.
Вот мой код:
import pandas as pd
import glob
import os
globbed_files = glob.glob("BestColleges.com _ 2019 Online Rankings/BC*.xlsx")
data = [] # pd.concat takes a list of dataframes as an argument
for file in globbed_files: # some files have headers on first row, others second row
df = pd.read_excel(file, sheet_name='4. Final Ranked List')
if df.columns[0] == 'IPEDS': # if true, first cell contains headers
df['filename'] = os.path.basename(file)
df.columns = df.columns.str.strip().str.lower().str.replace(' ', '_').str.replace('(', '').str.replace(')', '') # normalize headers
data.append(df)
else:
df = pd.read_excel(file, sheet_name='4. Final Ranked List', skiprows=1) # skip first row if not headers
df['filename'] = os.path.basename(file)
df.columns = df.columns.str.strip().str.lower().str.replace(' ', '_').str.replace('(', '').str.replace(')', '')
data.append(df)
bigframe = pd.concat(data, ignore_index=True, sort=False) # concatenate the data frames into one
bigframe.to_excel("bc_non_doc.xlsx", index=False)
Так что список имен файлов с дублирующимися заголовками был бы неплох, или посмотреть, какой файл выдает ошибку, или, возможно, AttributeError не имеет ничего общего с дублирующимися заголовками?