[英]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.