将pandas DataFrame行除以特定数量的随机集

时间:2016-05-13 19:28:59

标签: python python-2.7 pandas dataframe

我想随机分为5组DataFrame的行。它们不必具有相同的尺寸。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

您可以通过为每一行分配一个组编号然后按该编号分组来形成子数据框列表:

import numpy as np
num_groups = 5
df['group'] = np.random.randint(num_groups, size=len(df))
dfs = [grp for key, grp in df.groupby('group')]

如果您不希望在原始DataFrame中添加group列,则可以使用

import numpy as np
num_groups = 5
dfs = [grp for key, grp in df.groupby(np.random.randint(num_groups, size=len(df)))]