我有一个DataFrame df这样的:
user_id movie_id rating
32236 1 1 5
23171 1 2 3
83307 1 3 4
62631 1 4 3
47638 1 5 3
26184 2 1 4
1333 5 1 4
172 5 2 3
54487 6 1 4
52430 7 4 5
18504 10 1 4
4617 10 4 4
我想df根据 随机分组user_id,并且每组具有相同数量的user_id(如果不能平均划分,至少具有相似数量的user_id),但不合user_id并行。
例如user_id,每组除以 2
user_id movie_id rating
32236 1 1 5
23171 1 2 3
83307 1 3 4
62631 1 4 3
47638 1 5 3
52430 7 4 5
user_id movie_id rating
26184 2 1 4
18504 10 1 4
4617 10 4 4
user_id movie_id rating
1333 5 1 4
172 5 2 3
54487 6 1 4
我写了一个方法group(df, n):
def group(df, n) :
shuffled = df.sample(frac=1)
result = np.array_split(shuffled, n)
dict = {}
for i, part in enumerate(result):
dict['df_'+str(i+1)] = part
return dict
但它不适用于出现在多行中的相同数字,例如df. 而且我只能设置分成多少组,不能设置user_id每个分成多少组。
如何df根据 进行分组user_id,并且每个组都具有user_id我提到的选定数量?
冉冉说
梵蒂冈之花
相关分类