我有一個df我正在寫一個excel。
但首先我創建了一個新的資料框,它有一列,它的值是一個 excel 公式。
next_sheet = pd.DataFrame()
next_sheet['SUM'] = '=SUM(first!D2:first!D4)'
如您所見,作業表second & third內部共享相同的公式。
df_res.to_excel('testing.xlsx', sheet_name='first') # main sheet with data
with pd.ExcelWriter('testing.xlsx', engine="openpyxl", mode="a") as writer:
pd.DataFrame(data = ['=SUM(first!D2:first!D4)'], columns = ['SUM']).to_excel(writer, sheet_name='second')
next_sheet.to_excel(writer, sheet_name='third')
但是當我撰寫運行此代碼時,第一張和第二張作業表按預期撰寫,第一個只有原始資料,第二個有作業表中的列SUM和SUM值first,但作業third表只有列名SUM但沒有值在它下面。
第二張:

第三張:

我的目標是能夠使用公式而不是原始值撰寫資料框,然后我會將其作為新作業表附加到現有的 excel 檔案中。我將它作為作業third表中的示例的錯誤在哪里?我遵循了這個例子。
uj5u.com熱心網友回復:
怎么了?
您創建了一個空資料框并嘗試將該列設定SUM為您的值,但您的資料框中沒有可操作的行。所以它只會創建新的空列。
怎么修?
將帶有新列的資料分配SUM給空資料框:
next_sheet = next_sheet.assign(SUM=['=SUM(first!D2:first!D4)'])
或者直接創建資料框:
next_sheet = pd.DataFrame(data = ['=SUM(first!D2:first!D4)'], columns = ['SUM'])
例子
import pandas as pd
next_sheet = pd.DataFrame()
next_sheet = next_sheet.assign(SUM=['=SUM(first!D2:first!D4)'])
with pd.ExcelWriter('test.xlsx', engine="openpyxl", mode="a") as writer:
pd.DataFrame(data = ['=SUM(first!D2:first!D4)'], columns = ['SUM']).to_excel(writer, sheet_name='second')
next_sheet.to_excel(writer, sheet_name='third')
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/399102.html
上一篇:如何從不一致中獲得一致性輸出
