随机改组DataFrames列表中的一列

时间:2019-08-01 17:33:32

标签: python pandas

我有一个熊猫DataFrames列表(称为final_list)(其中3个),每个都有3列。单个数据框看起来像这样

x   y   T/F
2   0   False
2   1   False
3   2   False
5   3   True
6   4   False
6   5   False
6   6   False
4   7   False
2   8   False
2   9   True
3   10  True

我想我会使用random.shuffle遍历列表并像这样随机化“ T / F”列

index = 0
while counter < len(final_list):
    random.shuffle(final_list[counter]['T/F'])
    counter += 1

我的目标是使每个DataFrame中的“ T / F”列随机移动,这意味着每个DataFrame中的“ T / F”列应该不同,但是在运行代码后,每个DataFrame中的“ T / F”列却不同比原始版本好,但是它们彼此相同。

2 个答案:

答案 0 :(得分:1)

IIUC,您需要: 输入以下内容:

final_list=[df,df,df]

list_dfs=[i.assign(**{'T/F':np.random.choice(i['T/F'],len(i))}) for i in final_list]

答案 1 :(得分:0)

for df in final_list:
    d['T/F'] = d['T/F'].sample(frac=1).values
    x   y    T/F
0   2   0  False
1   2   1   True
2   3   2  False
3   5   3   True
4   6   4   True
5   6   5  False
6   6   6  False
7   4   7  False
8   2   8  False
9   2   9  False
10  3  10  False