运行方差分析并给出 F 统计值作为输出的函数



im尝试写入的函数将获取提供的数据帧并计算F统计值并提供这些值作为输出。

数据格式Final

Color   Strength   Fabric  Sales
0         1         1         10
1         2         2         15

在这里,颜色、强度和面料是独立的,而销售是独立的。

def regression():
X=Final.copy()
y=Final[['Sales']].copy()
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=.2, random_state=0)
sel=f_classif(X_train, y_train)
p_values=pd.Series(sel[0], index=X_train.columns)
p_values=p_values.reset_index()
pd.options.display.float_format = "{:,.2f}".format
return p_values

Final.apply(regression)

这是我想出的代码,但它抛出了一个错误

TypeError: regression() takes 0 positional arguments but 1 was given

这段代码可能出了什么问题?

使用.apply()时,数据帧或序列将作为参数传递给调用的函数。文档对此进行了更多解释。为了解决此问题,而不是:

Final.apply(regression)

您可以像这样简单地调用regression()

m_p_values = regression()

现在变量m_p_values包含返回值regression().

最新更新