2016-06-01 7 views
1

Я столкнулся с некоторыми предыдущими сообщениями о том, как перетасовывать значения строк (Randomizing/Shuffling rows in a dataframe in pandas). Для меня, однако, мне было интересно, как перетасовать часть этих строк, а не весь из этих строк.Перемешать часть строк в DataFrame

Я сделал быстрый dataframe здесь:

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

Есть ли способ, чтобы повторно работу это такое, что для каждой строки, значения в столбцах B, C, и D перемешиваются в то время как значения в столбцах A и E остаются в одном месте?

ответ

0

Вы можете использовать нарезку в команде в случайном порядке:

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