팬더 데이터 프레임을 가져 와서 1 열을 꺼내고 해당 열의 내용을 섞은 다음 다시 DataFrame에 놓고 반환하려고합니다. 사용 된 코드는 다음과 같습니다.Numpy .shuffle은 매번 같은 결과를 반환합니다.
def randomize(self, data, column):
'''Takes in a pandas database and randomizes the values in column.
data is the pandas dataframe to be altered.
column is the column in the dataframe to be randomized.
returns the altered dataframe.
'''
df1 = data
df1.drop(column, 1)
newcol = list(data[column])
np.random.shuffle(newcol)
df1[column] = newcol
return df1
실행 할 때마다 동일한 출력이 나타납니다. 왜 그런가요?
참고 : 매번 동일한 데이터 프레임을 사용하고 있습니다.
'drop'은 아무 것도하지 않는 것 같습니다.'DataFrame.drop()'의 반환 값을 지정하지 않고'inplace = True'를 지정하지 않았기 때문입니다. 데이터 프레임에'randomize'의 반환 값을 할당하지 않아서 비슷한 실수를하고 있습니까? 리턴하기 전에'print (df1)'하면, 올바르게 ('column'이 유효하다면) 랜덤 화되어야합니다. – jedwards
@jedwards가 말하는 두 번째. 처음 두 줄은'df1 = data.drop (column, axis = 1)' –