33,010
社区成员
发帖
与我相关
我的任务
分享
# coding=utf_8
import numpy as np
import itertools
from pandas import Series,DataFrame
import pandas as pd
if __name__=='__main__':
v=[7,8,9,20,10]
threshold=17
df=DataFrame(columns=v)
#穷举v的2的5次方组合
for item in itertools.product(range(2),repeat=len(v)):
df.loc[df.shape[0]+1]= list(item)
#增加一列sum为每一种组合情况的和值
df['sum']=df.apply(lambda x:np.dot(x,v),axis=1)
#增加一列为和值的排名
df['rank']=df.rank(method='average')['sum']
#输出此排名的所有数据
print df[df['rank']==df[df['sum']>=threshold]['rank'].min()]