Каждый раз, когда вы видите ключевое слово «with» в python, и строка заканчивается на «:», тогда вы работаете с менеджером контекста… и последующие строки, которые относятся к нему, должны иметь отступ. Попробуйте это:
with pd.ExcelWriter('Result of analyse.xlsx') as writer:
gdata.to_excel(writer)
Есть и другие способы сделать это ... см. Ссылку ниже ... Я предпочитаю, как вы написали это, потому что менеджеры контекста выполняют некоторые закулисные действия, такие как сохранение / закрытиеобъекты.
https://pythonexamples.org/pandas-write-dataframe-to-excel-sheet/
# render dataframe as html
writer = pd.ExcelWriter('output.xlsx')
df_marks.to_excel(writer)
writer.save()
print('DataFrame is written successfully to Excel File.')