首页 > 解决方案 > Python Dataframe:随机播放一组行

问题描述

在数据框中打乱一组行的最佳方法是什么?需要这个模型的洗牌训练集。

例如,将每 10 行打乱为一个单独的组,或者有一些逻辑条件来创建单独的组并将它们打乱为一个组。

标签: pythonmachine-learning-modeldataframe

解决方案


您可以做的是 - 创建一个标识组的列,然后按该列分组,然后对每个组进行随机洗牌。

df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
df['group_id'] = np.arange(df.shape[0]) // 10  # // is integer division in python3, won't work in python2
shuffled_groups = [v.drop(['group_id'], axis=1).sample(frac=1).reset_index(drop=True) for k, v in df.groupby('group_id')]

推荐阅读