Я получаю сообщение об ошибке, когда хочу сохранить окончательный DataFrame в файл Excel:
for filename in path.glob('**/*.xlsx'):
[...]
[... omitted code, will share, if interest exists]
[...]
print('Processing : ' + str(filename))
try:
data = pd.read_excel(filename, sheet_name='Main Sheet', header=None)
new_row = pd.DataFrame([[str(filename), str(now)]],
index=[0])
# simply concatenate both dataframes
data = pd.concat([new_row, data]).reset_index(drop=True, inplace=True)
appended_data.append(data)
appended_data = pd.concat(appended_data, sort=False, ignore_index=True)
except Exception as e:
print(e)
print('Couldn\'t process ' + str(filename) + ' ! ')
copy('C:\\Users\\**YOU**\\' + str(filename), (os.path.expanduser(
'~/') + '\\**CLOUD'))
os.remove('C:\\Users\\**YOU**\\' + str(filename))
except Exception as e:
print('Error! Error!: ' + str(e) + str(e.args))
после цикла:
appended_data.to_excel('appended.xlsx')
book = load_workbook('appended2.xlsx')
writer = pd.ExcelWriter('appended2.xlsx', engine='openpyxl')
writer.book = book
writer.sheets = {ws.title: ws for ws in book.worksheets}
startrow = writer.sheets['Sheet1'].max_row
appended_data.to_excel(writer, startrow=startrow, index=False, header=False)
writer.save()
Объект "AttributeError: 'list'не имеет атрибута "to_excel" "происходит во второй последней строке здесь. Я в замешательстве, так как код работал до того, как я сделал некоторые «улучшения» в цикле. Как можно превратить список в фрейм данных? Когда я пробую простой df = pd.DataFrame (appended_data), я получаю «Все переданные объекты были None»
Некоторая справочная информация: фреймы данных выглядят так:
Заголовок
Eaten this month Ordered Self-made Eaten out
Pizza 20 5 7 8
Pasta 10 1 8 1
Sushi 5 0 N/A
Chinese 15 14 1 N/A
Заголовок удален, а агрегированные данные имеют имя и дату. Добавленные данные (окончательный результат):
Wight 2019/10/28
Pizza 20 5 7 8
Pasta 10 1 8 1
Sushi 5 0 N/A
Chinese 15 14 1 N/A
Olufsson 2019/10/27
Pizza 20 5 7 8
Pasta 10 1 8 1
Sushi 5 0 N/A
Chinese 15 14 1 N/A