把pandas.DataFrame中所有行全部随机排列

  统计/机器学习 Python    浏览次数: 3064
2

我有个DataFrame,有什么办法可以把其中的行打乱,随机重新排列的,谢谢!


 

魏哲   2017-10-18 12:14



   3个回答 
3

pandas的dataframe有自带的sample功能,当设参数frac=1的时候,就相当于对行做shuffle

df = df.sample(frac=1)


如果重新排列之后希望index还是从0开始排序的话,可以这样操作

df = df.sample(frac=1).reset_indedx(drop=True)



SofaSofa数据科学社区 DS面经 问答 实战

五道口少年   2017-10-18 21:09

2

随机重排的属于叫做shuffle,也就是“洗牌”。

sklearn里有洗牌的函数。

from sklearn.utils import shuffle
df = shuffle(df)


SofaSofa数据科学社区 DS面经 问答 实战

岛歌   2017-10-18 12:50

2

用np.random.permutation构建一个随机序列,作为index来对df进行shuffle处理 

from np.random import permutation
idx = permutation(len(df))
df[idx]


SofaSofa数据科学社区 DS面经 问答 实战

xfyx   2018-10-24 17:28



  相关主题

怎么利用pandas获得一个列联表(contingency table)?   1回答

把pandas df写入csv时UnicodeEncodeError   1回答

行数很多的pandas DataFrame如何在jupyter中完整显示?   1回答

怎么改变pandas dataframe里column的顺序?   1回答

去掉pandas DataFrame的index的名字   2回答

找到pd.DataFrame中某个列名对应的下标?   1回答

pd Series的用法问题   1回答

pandas读取csv文件遇到UnicodeDecodeError   2回答

python或者pandas读取excel xlsx文件中指定的一个sheet   1回答

pandas pop KeyError求帮助!   3回答

如何把一个pandas的dataframe的columns转换成list   2回答

将pandas DataFrame保存成本地txt并删去列名   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!