Pandas ExcelWriter (…,engine=’odf’) — нет модуля с именем odf

#python #pandas #ods

#python #pandas #ods

Вопрос:

Я не понимаю, почему я не могу сохранить свои данные в документе .ods с предоставленной ошибкой. Я просмотрел документацию pandas.ExcelWriter() , и в ней четко указано, что нужно использовать engine='odf' , чтобы иметь возможность сохранять как .ods .

Код:

 import pandas as pd

... # nothing of value

df = pd.DataFrame(data, columns=COLS, index=None)
with pd.ExcelWriter('new.ods', engine="odf") as doc:
    df.to_excel(doc, sheet_name="Sheet1")
 

Ошибка:

 File "..../main.py", line 190, in <module>
    with pd.ExcelWriter('new.ods', engine="odf") as doc:
File "..../Python38-32libsite-packagespandasioexcel_odswriter.py", line 34, in __init__
    from odf.opendocument import OpenDocumentSpreadsheet
ModuleNotFoundError: No module named 'odf'
 

Ответ №1:

Попробуйте установить odfpy

 pip install odfpy
 

https://pypi.org/project/odfpy/

Комментарии:

1. Спасибо Navyad . Я удивлен, что в документации не упоминается это требование. Google тоже не сильно помог. Я бы никогда об этом не узнал.

Ответ №2:

Как предложено @navyad

 !pip install odfpy
 

Кроме того, убедитесь, что вы не пишете engine='odfpy' вместо engine='odf'

 import pandas as pd
df = pd.DataFrame(data, columns=COLS, index=None)
with pd.ExcelWriter('new.ods', engine="odf") as doc:
    df.to_excel(doc, sheet_name="Sheet1")