Я пытаюсь взять pandas DataFrame, вынуть 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' обратно в ваш dataframe? Если вы 'print (df1)' перед его возвратом, вы должны увидеть, что он рандомизирован правильно (при условии, что 'column' является допустимым). – jedwards
Я второй, что @jedwards говорит. Ваши первые две строки должны быть объединены в 'df1 = data.drop (column, axis = 1)' –