0
私はnumpy.random.permutation()を使って元のデータフレームXに対してランダムな順序を生成し、その全体をX_permにランダムな順序で割り当てる必要がありました。DataFrame.loc()はデータフレームにどのような影響を与えましたか?
X_perm=X
y_perm=y
perm = np.random.permutation(X.shape[0])
for i in range(len(perm)):
X_perm.loc[i]=(X.loc[perm[i]])
y_perm.loc[i]=(y.loc[perm[i]])
コードを実行した後、X [0:1]によって与えられたXの最初のレコードは、実行前のケースに比べて変化しています。
Strange。私はX上で何も操作をしませんでしたが、その値を新しいデータフレームに割り当てます。どのようにしてX値の変化を引き起こしたか?この予期しない動作のため
乾杯
'X_perm = X'の代わりに' X_perm = X.copy() 'に置き換えてください。 '='を使うと、リファレンスでコピーしているので、 'X'や' X_perm'のいずれかの変更は他のものに影響します。 – Abdou
'X_perm = X'はコピーを作成しません。名前X_permをXで参照される同じオブジェクトにバインドするだけです.X_permで参照されるオブジェクトを変更すると、元のものに変更が加えられます。 –