在 DataFrame 中保存 excel 公式,然后将其写入 excel

Save excel formula in the DataFrame and then write it to excel

有一个小数据框df。 我想将其写入 Excel 以便 B 列包含公式:B=A+C

df = pd.DataFrame(np.random.randint(0,1000,size=(3,3)), columns=list('ABC'))
df['B']='=RC[-1]+RC[1]'
with pd.ExcelWriter(r'C:\Users\belose\Downloads\output.xlsx', engine='openpyxl', mode='w')as writer:
    df.to_excel(writer, sheet_name='Sheet1',  index=False)

Excel 则根本无法识别 B 列的内容并发送错误消息。

我做错了什么?

试试这个公式:

df = pd.DataFrame(np.random.randint(0,1000,size=(3,3)), columns=list('ABC'))
df['B'] = '=INDIRECT("R[0]C[-1]", 0)+INDIRECT("R[0]C[1]", 0)'

with pd.ExcelWriter(r'output.xlsx', engine='openpyxl', mode='w')as writer:
    df.to_excel(writer, sheet_name='Sheet1',  index=False)

输出:

您也可以通过给出 'A' 和 'C' 列相对于 'B' 的位置而不是 -1 和 1 来即兴创作。

df['B'] = '=INDIRECT("R[0]C[%s]", 0)+INDIRECT("R[0]C[%s]", 0)'%\
          (df.columns.get_loc('A') - df.columns.get_loc('B'),
           df.columns.get_loc('C') - df.columns.get_loc('B'))