投资组合优化python3.6

时间:2020-02-03 20:18:07

标签: python python-3.6

我的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数据集中提取的列表之一吗?

最好, 同行

0 个答案:

没有答案