首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫蟒蛇优化利润线性优化

熊猫蟒蛇优化利润线性优化
EN

Stack Overflow用户
提问于 2017-08-01 07:47:11
回答 1查看 1K关注 0票数 3

我有一个df,它拥有控制权和利润:

代码语言:javascript
复制
import numpy as np import pandas as pd

dates = pd.date_range('20130101',periods=6) 
df = pd.DataFrame(np.random.randn(6,3),index=dates,columns=['Value1', 'Value2', 'Profit']) 
df['Profit'] = df['Profit']*100 


print(df.to_string())

total_profit = df['Profit'].loc[(df.Value1 > 0) & (df.Value2 >= 0)].sum()

print(total_profit)

有没有一种熊猫的方法来优化total_profit,通过寻找过滤value1和value2的最佳匹配指标?

我的意思是,我可以循环的DF和增加/减少滤波器值,直到我找到最佳的拟合值.但我想有人已经这么做了..。也许是雪皮?

因此,我基本上需要一个函数,返回最适合value1和value2的函数,这样我就可以过滤DF并优化total_profit。假设是,value1、value2与利润之间存在相关性。

谢谢,并致以最良好的祝愿。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-01 15:00:28

假设您只想对df.Value1和df.Value2使用观察到的值,下面的操作就可以了。

代码语言:javascript
复制
import numpy as np 
import pandas as pd

dates = pd.date_range('20130101',periods=6) 
df = pd.DataFrame(np.random.randn(6,3),index=dates,columns=['Value1', 'Value2', 'Profit']) 
df['Profit'] = df['Profit']*100 

print(df.to_string())

# create list of all possible value pairs
vals = [[i,j] for i in df.Value1 for j in df.Value2]

# create list of profits from all possible value pairs
total_profit = [df['Profit'].loc[(df.Value1 > i) & (df.Value2 >= j)].sum() for i, j in vals]

# get index of maximum profit
max_index = total_profit.index(max(total_profit))

# get values that correspond to max profit
vals[max_index]

Out[9]: [-0.51914224014959032, -0.73918945103973344]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45431892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档