简体   繁体   English

改组 Pandas 数据框列

[英]Shuffling Pandas Dataframe Columns

I need to shuffle dataframe columns.我需要洗牌数据帧列。 Currently I do it this way:目前我这样做:

import random
import pandas as pd
import numpy

df = pd.DataFrame(numpy.random.rand(1,5))
print (df)
df_as_list = df.values.tolist()[0]
random.shuffle(df_as_list)
df_shuffled = pd.DataFrame(df_as_list).transpose()
print (df_shuffled)

Before:前:

          0         1         2         3         4
0  0.472918  0.261734  0.987053  0.921826  0.144114

After:后:

          0         1         2         3         4
0  0.472918  0.921826  0.987053  0.144114  0.261734

So it does the job, but there must be a better way to do this.所以它可以完成这项工作,但必须有更好的方法来做到这一点。 Any ideas?有任何想法吗?

A little different way:有点不同的方式:

cols = list(df.columns.values)
random.shuffle(cols)
df.columns = cols

try :尝试

def shuffle(df, n=1):
    for _ in range(n):
        df.apply(np.random.shuffle)
        return df
df = pd.DataFrame({'A':range(10), 'B':range(10)})

shuffle(df)

print(df)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM