问题描述
希望你能帮助我,我几个月来一直在努力解决这个问题,
import pandas as pd
# initialize list of lists
data = [['A','XYD',12.2],['A','HMP',11.2],'LKA',13.8],['B',14.7],12],16.2],['C',11],15.3]]
# Create the pandas DataFrame
df = pd.DataFrame(data,columns = ['Name','Portofilo','Price'])
df
Name Portofilo Price
0 A XYD 12.2
1 A HMP 11.2
2 A LKA 13.8
3 B XYD 14.7
4 B HMP 12.0
5 B LKA 16.2
6 C HMP 11.0
7 C LKA 15.3
知道我想在我的第二个表中找到 A、B、C 的值(逗号后的两位数)和 XYD、HMP、LKA 的值
我需要这样:
Name XYD HMP LKA
0 A 12.2 11.2 13.8
1 B 14.7 12.0 16.2
2 C NaN 11.0 15.3
基于此规则:
objective = cp.Minimize (cp.sum_squares ((T - TG * (1-r)))) 所以 我的 T 是我的价格: r 是我每列唯一的 XYD、HMP、LKA 值 TG 是每行 A、B、C 的唯一值
如果我这样做:
A * (1-XYD) = 12.2
A * (1-HMP) = 11.2
A * (1-HMP) = 13.8
B * (1-XYD) = 14.7
B * (1-HMP) = 12.0
B * (1-HMP) = 16.2
C * (1-HMP) = 11.0
C * (1-HMP) = 15.3
如何找到这两个变量的最优值?我只尝试了一个变量,但有两个变量,我有 DCPError
我试过了:
import cvxpy as cp
Tar = np.unique(df['Name'])
for seg in Tar:
T = np.array(df['Price'])
r = cp.Variable(3)
TG = cp.Variable(1)
R = (1 - r)
objective = cp.Minimize( cp.sum_squares( (T - TG * R) ))
contraints = [ r >= 0,TG>= 0]
problem = cp.Problem( objective,contraints)
problem.solve()
Remise = np.around( r.value,2 )
但是没有用,
感谢您的帮助
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)