小编Her*_*ini的帖子

Scipy 或 bayesian 优化函数与 Python 中的约束、边界和数据框

使用下面的数据框,我想优化总回报,同时满足某些界限。

d = {'Win':[0,0,1, 0, 0, 1, 0],'Men':[0,1,0, 1, 1, 0, 0], 'Women':[1,0,1, 0, 0, 1,1],'Matches' :[0,5,4, 7, 4, 10,13],
     'Odds':[1.58,3.8,1.95, 1.95, 1.62, 1.8, 2.1], 'investment':[0,0,6, 10, 5, 25,0],}

data = pd.DataFrame(d)
Run Code Online (Sandbox Code Playgroud)

我想最大化以下等式:

totalreturn = np.sum(data['Odds'] * data['investment'] * (data['Win'] == 1))
Run Code Online (Sandbox Code Playgroud)

函数应该最大化满足以下边界:

for i in range(len(data)):
    
    investment = data['investment'][i]
    
    C = alpha0 + alpha1*data['Men'] + alpha2 * data['Women'] + alpha3 * data['Matches']
    
    if (lb < investment ) & (investment < ub) & (investment > C) == False:
        data['investment'][i] = …
Run Code Online (Sandbox Code Playgroud)

python optimization function bayesian scipy

11
推荐指数
1
解决办法
358
查看次数

在进行熊猫比较时,如何从 np.nan&gt;np.nan 返回 np.nan?

我有以下两个数据帧:

a = pd.DataFrame([[1,2, 3],[4,3,6], [np.nan, 2, np.nan]])
     0  1    2
0  1.0  2  3.0
1  4.0  3  6.0
2  NaN  2  NaN
Run Code Online (Sandbox Code Playgroud)

b = pd.DataFrame([[0,1,3],[5,3,5 ],[np.nan, np.nan, np.nan]])
     0    1    2
0  0.0  1.0  3.0
1  5.0  3.0  5.0
2  NaN  NaN  NaN
Run Code Online (Sandbox Code Playgroud)

a>b 的比较结果:

       0      1      2
0   True   True  False
1  False  False   True
2  False  False  False
Run Code Online (Sandbox Code Playgroud)

但是,我希望输出如下所示:

     0      1      2
0   True   True  False
1  False  False   True
2   nan    nan     nan
Run Code Online (Sandbox Code Playgroud)

的比较2>np.nan …

python comparison nan dataframe pandas

3
推荐指数
1
解决办法
54
查看次数

有没有办法可以在 python talib 和 btalib 中一次检索所有指标?

您可以使用 talib 和 btalib 库中内置的函数来计算许多指标。逐个指标收集所有信息会很麻烦。有没有办法立即做到这一点?如果是这样,我应该如何在 python 中继续这样做?

http://mrjbq7.github.io/ta-lib/func_groups/pattern_recognition.html

https://btalib.backtrader.com/ta-lib-compat/

python function package ta-lib

2
推荐指数
1
解决办法
2901
查看次数

docker容器中的Pyspark postgresql数据库连接

我正在尝试使用 docker 容器内的 pyspark 连接到计算机的 localhost:5432 上的 postgres 数据库。为此,我使用 VS 代码。VS code 自动构建并运行容器。这是我的代码:

password = ...
user = ...
url = 'jdbc:postgresql://127.0.0.1:5432/postgres'

    
    spark = SparkSession.builder.config("spark.jars","/opt/spark/jars/postgresql-42.2.5.jar") \
        .appName("PySpark_Postgres_test").getOrCreate()
        
    
df = connector.read.format("jbdc") \
.option("url", url) \
    .option("dbtable", 'chicago_crime') \
        .option("user", user) \
            .option("password", password) \
                .option("driver", "org.postgresql.Driver") \
                    .load()
Run Code Online (Sandbox Code Playgroud)

我不断收到同样的错误:

“调用 o358.load 时发生错误。\n:java.lang.ClassNotFoundException:\n无法找到数据源:jbdc。...

也许网址不正确?

url = 'jdbc:postgresql://127.0.0.1:5432/postgres'
Run Code Online (Sandbox Code Playgroud)

该数据库位于端口5432上,名称为postgres。数据库位于我的本地主机上,但由于我在 docker 容器中工作,我认为正确的方法是输入笔记本电脑的 IP 地址 localhost 127.0.0.1。如果您输入localhost,它将引用您的 docker 容器的 localhost。或者我应该使用IPv4 地址(无线 LAN .. 或 wsl)。

任何人都知道出了什么问题吗? …

postgresql docker apache-spark pyspark

2
推荐指数
1
解决办法
815
查看次数