python实现组合优化

1、多个变量组合与单一目标,实现组合优化:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import itertools
%matplotlib inline

#  生成结果字典,转化为DataFrame
result={
    "gender":[],
    "age":[],
    "job":[],
    "job_time":[],
    "size":[],
    "mean":[]
}
metricx="salsry"
data=pd.DataFrame(result)

# 指标之间组合交叉分析
def group_combine(data,dimension,metric):
    data_agg=data.groupby(data[list(dimension)])["metric"].agg([np.size,np.mean]).set_index()
    return data_agg.to_dict(orient="records")


# 将结果追加到dataframe中
def append_data(agg_dict):
    for line in agg_dict:
        for element in datframe_elements:
            result_dict[element].append(line[element]) if element in line else result_dict[element].append('')


for number in range(len(elements)):
    print number
    print list(combinations(elements, number+1))
    for combination in list(combinations(elements, number+1)): 
        print list(combination)
        print metric
        agg_dict = group_aggregation(data = df1, dimension = list(combination), metric = metric)
        append_data(agg_dict)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值