volvo007
2020-07-09 20:48:40 +08:00
楼主的条件是,任意行相加大于标准值就可以
但是楼主想过没有,你现在有 200 行……要打印出所有的组合你算过有多少种吗……说得轻巧啊……最坏情况可是 200 ! 200 的阶乘啊……
我建议你找到一个满足条件的就收手,全打印出来太天真了
如果是随机提供行数,你这里 0-200 行选哪些行不确定,200 行里面每次选多少行出来也不确定,不过用两次随机数就可以了。用 np.random.randint(200) 可以生成一个 200 内的随机整数 N 作为需要相加的行数,用 np.random.choice(range(200), N) 就可以从 200 行当中不重复选出这随机的 N 行
然后得到的行数是一个数组,可以用 df.iloc[ list, :].sum(axis=0) 算出这些随机行的每一列的和
之后和你的标准值比较就可以了
这个过程可以循环多次。我估计不到一秒就能找到其中的一个组合。你要把组合全打印出来我真劝你放弃……