Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 操纵dataframe,使列和等于常量_Python - Fatal编程技术网

Python 操纵dataframe,使列和等于常量

Python 操纵dataframe,使列和等于常量,python,Python,我得到了一个包含1500行和25列的数据帧,其中每个单元格可以取0或1,每行最多3个1: 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公差是可以的),这意味着所有的1在列之间均匀分布。 我试图通过使用列表并将ID一

我得到了一个包含1500行和25列的数据帧,其中每个单元格可以取0或1,每行最多3个1:

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公差是可以的),这意味着所有的1在列之间均匀分布。 我试图通过使用列表并将ID一步一步地分配给各个列表来解决这个问题,但是,这只会给最后一列留下一堆未分配的ID,因为我主要使用if和for循环来迭代单个列表,而不是整个数据帧

任何帮助都将不胜感激

更新
正如评论中提到的:最后,三个1中的两个需要删除。1基本上包含表示已选择主题的单个列的首选项。因此,我们的想法是根据偏好将每个人(由ID表示)分配给一个主题,这样处理一个主题的组大小大致相同

如果您每行有三个
1
s,并且您希望每行有一个
1
,那么是什么决定了
1
在结果中的位置,需要删除三个1中的两个。1基本上包含表示已选择主题的单个列的首选项。因此,我们的想法是根据偏好将每个个体(由ID表示)分配给一个主题,这样处理一个主题的组的大小与它的声音大致相同,这就是您要寻找的。对于一些不请自来的建议,这是出于最友好的目的:请阅读以下内容