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引用的对象,则可以对原始对象进行变异。 –