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

  统计/机器学习 Python    浏览次数:17554        分享
2

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


 

魏哲   2017-10-18 12:14



   3个回答 
4

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

df = df.sample(frac=1)


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

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



SofaSofa数据科学社区DS面试题库 DS面经

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

4

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

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


SofaSofa数据科学社区DS面试题库 DS面经

xfyx   2018-10-24 17:28

2

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

sklearn里有洗牌的函数。

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


SofaSofa数据科学社区DS面试题库 DS面经

岛歌   2017-10-18 12:50



  相关讨论

pandas计算复数乘法 出现nan+nanj

如何将dict字典转成pandas dataframe,key和value分别成为一列?

怎么把pandas dataframe中一列英文文本全部转成小写?

pandas按照两列sort_values,一个升序一个降序

如何复制一个pandas DataFrame

统计substring在pandas dataframe中一列文本中出现的次数?

pandas变形

pandas的groupby报错:ValueError: Length of values does not match length of index

pandas数据列顺序不同进行concat

怎么利用pandas新建一个只有列名的空的dataframe?

  随便看看

线性可分是什么意思?

去掉pandas DataFrame的index的名字

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

单一变量下的异常检测该怎么做?

怎么在matplotlib.pyplot的plot上加上文字?