0
我使用numpy.random.permutation()生成一個原始數據框X的隨機順序,並想按照隨機順序將整個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給定的X的第一個記錄[0:1]變更運行前比較的情況。
奇怪。我沒有對X進行任何操作,但將它的值分配給一個新的數據幀。它是如何引起X值變化的? 乾杯
而不是'X_perm = X',用'X_perm = X.copy()'代替它。當你使用'='時,你是通過引用複製的,因此對'X'或'X_perm'所做的任何更改都會影響另一個。 – Abdou
'X_perm = X'不會創建副本。它只是將名稱X_perm綁定到由X引用的同一對象。如果您然後變異了由X_perm引用的對象,則可以對原始對象進行變異。 –