在DataFrame中随机播放部分行

时间:2016-06-01 04:33:01

标签: python dataframe shuffle

我之前发过一些关于如何重排行值(Randomizing/Shuffling rows in a dataframe in pandas)的帖子。但对我来说,我想知道如何改变这些行的一部分,而不是整行这些行。

我在这里制作了一个快速数据框:

df = pd.DataFrame(np.random.randn(10, 5), columns=list('ABCDE'))

有没有办法重新处理这个问题,对于每一行,列B,C和D中的值是混洗的,而列A和E中的值保持在同一位置?

1 个答案:

答案 0 :(得分:0)

您可以在shuffle命令中使用切片:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(10, 5), columns=list('ABCDE'))
print df

A=df.values
_= [np.random.shuffle(i) for i in A[: ,1:4]]

df2=pd.DataFrame(A, columns=list('ABCDE'))
print df2