首页 > 解决方案 > 使用 numpy 对 pandas 数据框进行多项式拟合

问题描述

我有一个包含天文数据的数据框:

在此处输入图像描述

我正在statsmodels.formula.api尝试使用标记为log_zUBV和其他变量的列将多项式拟合应用于数据框。我到目前为止

sources['log_z'] = np.log10(sources.z)
mask = ~np.isnan((B-I)) & ~np.isnan(log_z)
model = ols(formula='(B-I) + np.power((U-R),2) ~ log_z', data = [log_z[mask], (B-I)[mask]]).fit()

但我不断得到

PatsyError: Error evaluating factor: TypeError: list indices must be integers or slices, not str
(B-I) + np.power((U-R),2) ~ log_z
        ^^^^^^^^^^^^^^^^^

即使我将数组传递给函数。无论我使用什么数组或如何格式化它们,我都会收到相同的错误消息(除了最后一行)。谁能看到我做错了什么?

标签: numpydataframestatsmodelsdata-fitting

解决方案


推荐阅读