首页 > 解决方案 > 改组 Pandas 数据框列

问题描述

我需要洗牌数据框列。目前我这样做:

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)

前:

          0         1         2         3         4
0  0.472918  0.261734  0.987053  0.921826  0.144114

后:

          0         1         2         3         4
0  0.472918  0.921826  0.987053  0.144114  0.261734

所以它可以完成这项工作,但必须有更好的方法来做到这一点。有任何想法吗?

标签: pythonpandasdataframe

解决方案


有点不同的方式:

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

推荐阅读