【发布时间】:2022-01-22 06:55:09
【问题描述】:
我有一个公式,如果它写在 Excel 公式栏中可以正常工作,但如果我在 pandas 中键入相同的公式,它会显示此错误:
Blockquote 已删除记录:来自 /xl/worksheets/sheet1.xml 部分的公式
公式很大:
=INDEX(LINEST(FILTER(IF(ISNUMBER(E2:E1048576),E2:E1048576,""),IF(ISNUMBER(E2:E1048576),E2:E1048576,"")<>"",),FILTER(B2:B1048576,IF(ISNUMBER(E2:E1048576),E2:E1048576,"")<>"",),FALSE,TRUE),1,1)
此公式计算两个信号之间散点图的斜率,但其中一个 (Column E) 可能包含 #N/A 值。
公式工作正常,但我找不到使用 pandas 创建 .xlsx 时它不起作用的原因。
import pandas as pd
df = pd.DataFrame()
formula = '=INDEX(LINEST(FILTER(IF(ISNUMBER(E2:E1048576),E2:E1048576,\"\"),IF(ISNUMBER(E2:E1048576),E2:E1048576,\"\")<>\"\",),FILTER(B2:B1048576,IF(ISNUMBER(E2:E1048576),E2:E1048576,\"\")<>\"\",),FALSE,TRUE),1,1)'
df[0,'formula'] = formula
df.to_excel('name.xlsx')
代码与我发布的不完全一样(显然,因为它没用),但仍然会弹出错误。
非常感谢您的帮助,也许公式语法有错误?我无法理解的是,如果我在 Excel 中输入公式,它会起作用......
【问题讨论】:
-
输入
df.loc[0,'formula'] = formula。您正在生成一个空数据框。 -
没错,我想把 .loc 放进去,你是对的,但这不是问题。
标签: python excel pandas excel-formula xlsxwriter