我得到了一个包含1500行和25列的数据帧,其中每个单元格可以取值为0或1,每行最多三个1s:
ID,t01,t02,t03,t04,t05,.... t25
s0001,0,1,1,0,0,....,1
s0002,1,0,1,1,0,...,0
s0003,0,1,0,0,1,....,1
。
。
。
s1500,0,0,1,1,1,....,0
现在,我需要转换此数据帧,以便每行仅包含一个1,并且列的总和总计为60(1500/25 = 60; +/- 2公差很好),这意味着所有1s在各列之间平均分配。 我尝试通过使用列表并逐步将ID分配给各个列表来解决此问题,但是,由于我主要使用if和for循环遍历单个列表,因此最后一列仅给我留下了一堆未分配的ID,不是整个数据帧。
任何帮助将不胜感激!
更新 如评论中所述:最后,需要删除三个1中的两个。 1基本上包含代表已选择主题的单个列的首选项。因此,我们的想法是根据首选项将每个人(由ID代表)分配给一个主题,以便处理一个主题的小组人数大致相同