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()
.