Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

I have a pandas dataframe as below:

header = [np.array(['location','location','location','location2','location2','location2']), 
np.array(['S1','S2','S3','S4','S5','S6'])] 
df = pd.DataFrame(np.random.randn(5, 6), columns = header ) 

I want to export my dataframe to an excel sheet ignoring the index. Here is my code which exports my dataframe to excel spreadsheet but with index. when I am using the parameter, index = False, It gives me an error.

# output all the consolidated input to an excel sheet
out_file_name = os.path.join(folder_location, "templates", future_template)
writer = pd.ExcelWriter(out_file_name, engine='xlsxwriter')
# Write each dataframe to a different worksheet.
df.to_excel(writer, sheet_name='Ratings Inputs')
# Close the Pandas Excel writer and output the Excel file.
writer.save()
                This is the error message I got with index = False "NotImplementedError: Writing to Excel with MultiIndex columns and no index ('index'=False) is not yet implemented."
– Shanoo
                Mar 4, 2019 at 16:35
                Oh then what happens is that you don't have an updated version of pandas this is a feature implemented in 0.17 if I recall correctly. Just update your pandas.
– Mntfr
                Mar 4, 2019 at 16:40

DataFrame.to_excel(index=False) is still unsupported for MultiIndex (as of Pandas 1.3.4, Oct 2021). You will get the error:

NotImplementedError: Writing to Excel with MultiIndex columns and no index ('index'=False) is not yet implemented.

You can try some workarounds instead:

  • Write with index=True. Then using openpyxl, re-open the file, delete the undesired cols/rows, and re-save the file. This is a slow process, so it may not be practical for large dataframes.

  • You can manually write the MultiIndex headers. This won't have merged cells though. See How to hide the rows index

    Thanks for contributing an answer to Stack Overflow!

    • Please be sure to answer the question. Provide details and share your research!

    But avoid

    • Asking for help, clarification, or responding to other answers.
    • Making statements based on opinion; back them up with references or personal experience.

    To learn more, see our tips on writing great answers.

  •