我试图拿一个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')
然后再次
randomize(df, 'A')
看起来很有效!