【发布时间】:2016-05-15 23:48:14
【问题描述】:
我想知道使用 Scipy 拟合 Pandas DataFrame 列的最佳方法。如果我有一个包含列(A、B、C、D 和Z_real)的数据表(Pandas DataFrame),其中 Z 取决于 A、B、C 和 D,我想拟合每个 DataFrame 行(系列)的函数,它对 Z 进行预测(Z_pred)。
要拟合的每个函数的签名是
func(series, param_1, param_2...)
其中 series 是对应 DataFrame 每一行的 Pandas Series。我使用 Pandas 系列,以便不同的功能可以使用不同的列组合。
我已经尝试将 DataFrame 传递给 scipy.optimize.curve_fit 使用
curve_fit(func, table, table.loc[:, 'Z_real'])
但由于某种原因,每个 func 实例都将整个数据表作为其第一个参数而不是每一行的 Series 传递。我也尝试将 DataFrame 转换为 Series 对象列表,但这会导致我的函数被传递一个 Numpy 数组(我认为是因为 Scipy 执行从 Series 列表到不保留 Pandas 的 Numpy 数组的转换系列对象)。
【问题讨论】:
标签: python pandas scipy mathematical-optimization model-fitting