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

  统计/机器学习 Python    浏览次数:4418        分享
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读取文件夹中所有的csv文件   1回答

pandas读取csv中指定的某些列   2回答

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

如何对pandas dataframe的行做循环?   3回答

pandas DataFrame中经常出现SettingWithCopyWarning   2回答

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

怎么把一个pandas数据框用append的方式添加到现有的csv文件?   2回答

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

pandas的DataFrame如何插入带有index的行数据?   1回答

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

pandas.DataFrame的index重新排列(从0开始)   2回答

pandas pop KeyError求帮助!   3回答



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

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

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

我们谢绝答非所问。

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

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