我的Python代码有一些问题。也许您有解决问题的想法... 我有一个5x3的矩阵(列表),其中包含以下信息:
类型,得分,费用
Bentley,0.33,90000
福特,0.25,110000
梅赛德斯,0.27,65000
保时捷0.15,85000
要求 可用资产= 250000
该脚本的目标是根据可用资产计算最佳成本效益组合(Portfolio)。 例: 我有240kEur的客户要买车。 “得分”值确实代表了客户的重要性。
获得最高分数的最佳汽车组合是: 宾利,奔驰和保时捷。这些产品组合的总得分/成本为0.75,240kEur。
我想用我的Python脚本计算出最佳的投资组合,但是...
IN:[]
import numpy as np
import pandas as pd
import itertools
def combinations(iterable, r):
pool = tuple(iterable)
n = len(pool)
if r > n:
return
indices = list(range(r))
yield tuple(pool[i] for i in indices)
while True:
for i in reversed(range(r)):
if indices[i] != i + n - r:
break
else:
return
indices[i] += 1
for j in range(i+1, r):
indices[j] = indices[j-1] + 1
yield tuple(pool[i] for i in indices)
data = pd.read_csv('Portfolio.csv')
data.head()
X = len(data['Project_id'].values)
print(X)
type = data['type'].values
score = data['score'].values
cost = data['cost'].values
combination =[]
counter = 1
while (counter <= X):
liste = list(itertools.combinations(cost,counter))
combination.append(liste)
counter = counter + 1
test = np.transpose(combination)
出[] 可用组合 [[((120000,),(95000,),(110000,),(190000,)] [(120000,95000),(120000,110000),(120000,190000),(95000,110000),(95000,190000),(110000,190000)] [(120000,95000,110000),(120000,95000,190000),(120000,110000,190000),(95000,110000,190000)] [(120000,95000,110000,190000)]]
我已经计算出可行的组合。元组()表示组合,例如((Bentley,Mercedes))。接下来,我必须找到类型的总分和相应的费用。 您有一个获得这些数字的想法吗?我可以使用元组搜索从csv数据集中提取的列表之一吗?
最好, 同行