警告:正在尝试在DataFrame的切片副本上设置值 - 使用列列表

时间:2017-03-31 04:18:53

标签: python-3.x pandas numpy scikit-learn

我收到以下警告: 尝试在DataFrame的切片副本上设置值。 尝试使用.loc [row_indexer,col_indexer] = value而不是

这是我收到警告的代码:

col_names = ['Column1', 'Column2']
features = X_train[col_names]
scaler = StandardScaler().fit(features.values)
features = scaler.transform(features.values)
X_train[col_names] = features

我意识到这种情况正在发生,因为我正在复制数据帧。但我在这里所做的并不像我发现谷歌搜索的任何答案,所以我无法弄清楚如何将他们的答案应用到我的特定情况。如果您执行以下操作,看起来像您收到此警告的正常情况: d2 =数据[数据['名称'] ==' fred']

所以.loc不起作用。并且.assign也没有,因为我有一个列列表而不是我可以分配的列。我只是不太确定如何以它想要的方式处理它。

除了警告之外,它的工作方式很好。所以我的方式是正确的。

1 个答案:

答案 0 :(得分:0)

我认为警告是说你做了类似

的事情
X_train.loc[:, col_names] = features