'XlsxWriter' オブジェクトには属性 'save' がありません。 '_save' を意味していますか? 質問する

'XlsxWriter' オブジェクトには属性 'save' がありません。 '_save' を意味していますか? 質問する

pandas を使用してデータフレームから Excel ファイルのデータを保存しようとしています。次のコードを試していました。

import pandas as pd
import xlsxwriter
data = {'Name': ['John', 'Jane', 'Adam'], 'Age': [25, 30, 35], 'Gender': ['M', 'F', 'M']}
df = pd.DataFrame(data)

writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')

workbook = writer.book
worksheet = writer.sheets['Sheet1']

# Example: Adding a chart
chart = workbook.add_chart({'type': 'line'})
chart.add_series({'values': '=Sheet1.$B$2:$B$4'})
worksheet.insert_chart('D2', chart)
writer.save()

しかし、次のエラーが発生します。

writer.save()
    ^^^^^^^^^^^
AttributeError: 'XlsxWriter' object has no attribute 'save'. Did you mean: '_save'?

解決方法を誰か知っていますか?

ベストアンサー1

このsave()メソッドは非推奨となり、Pandas では削除されました。close()代わりに を使用する必要があります。

Pandas の古いバージョンでは、次の警告が表示されていました:

今後の警告: save はパブリック API の一部ではないため、使用すると予期しない結果が生じる可能性があり、将来のバージョンでは削除される予定です。

最近のバージョンでは、close()次のように使用するだけです (チャートの値の構文も修正しました)。

import pandas as pd
import xlsxwriter

data = {
    "Name": ["John", "Jane", "Adam"],
    "Age": [25, 30, 35],
    "Gender": ["M", "F", "M"],
}
df = pd.DataFrame(data)

writer = pd.ExcelWriter("output.xlsx", engine="xlsxwriter")
df.to_excel(writer, sheet_name="Sheet1")

workbook = writer.book
worksheet = writer.sheets["Sheet1"]

# Example: Adding a chart
chart = workbook.add_chart({"type": "line"})
chart.add_series({"values": "=Sheet1!$C$2:$C$4"})
worksheet.insert_chart("E2", chart)

writer.close()

出力:

ここに画像の説明を入力してください

おすすめ記事