首页 > 解决方案 > 在 for 循环中使用 .sample() 的最佳方法是什么?

问题描述

我有一个 217 列的数据框。直到现在我都通过给出一个特定的数字来采样它。然后使用采样的数据框应用线性回归模型来预测分数。我用来实现这一点的代码如下:

sample_lr = sample_lr.sample(5,axis=1)

sample_lr 如下所示:

    SHOCKS_1    SELFCONTROL_3   SOCSEC3     EMPLOY1_3   EMPLOY1_9   FWBscore
0      0             3            -2          0           0           55
1      0             3            66          0           0           51
2      0             3            68          0           0           49
3      0            -1            -1          0           1           49
4      0             3            65          0           0           49
if "FWBscore" in sample_lr:
    pass
else:
    sample_lr["FWBscore"] = df["FWBscore"]

sample_lr_2 = sample_lr.drop("FWBscore", axis=1)

X = sample_lr.drop('FWBscore', axis= 1)
y = sample_lr.FWBscore
linear_model = LinearRegression().fit(X, y)
sample_lr_2 = sample_lr.drop("FWBscore", axis=1)
sample_lr_2['FWBscore_PREDICT'] = linear_model.predict(sample_lr_2)
score = linear_model.score(X, y)

我现在要做的是使用绘图显示如何通过增加用户可以更改的采样数来增加分数。所以我的想法是使用for循环。

sample_lr = df.iloc[:500,:]

for i in range(1,5):
    sample_lr = sample_lr.sample(i, axis = 1)
    print(sample_lr)

这给了我替换=假的问题。我需要保持它为假,因为样本应该具有唯一的所有列,如果我设置为 True,它只会复制同一列 5 次。我想通过打印使用的是第一次我只有一列,第二个两列等等。
有没有办法实现我想要的?我没有考虑什么?

标签: pythonpandasfor-loopsample

解决方案


推荐阅读