python – Numpy .shuffle每次给出相同的结果

我试图拿一个pandas DataFrame,取出1列,随机播放该列的内容,然后将其放回DataFrame并返回它.这是使用的代码:

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

它每次运行时都会提供相同的输出.这是为什么?

注意:我每次都使用相同的数据帧.

最佳答案 你的代码

def randomize(data, column):
    df1 = data.copy()
    newcol = list(data[column])
    np.random.shuffle(newcol)
    df1[column] = newcol
    return df1

我的df

df = pd.DataFrame(np.arange(25).reshape(5, 5), list('abcde'), list('ABCDE'))

你的代码我的df

np.random.seed([3,1415])
randomize(df, 'A')

《python – Numpy .shuffle每次给出相同的结果》

然后再次

randomize(df, 'A')

《python – Numpy .shuffle每次给出相同的结果》

看起来很有效!

点赞