小编Ale*_*x F的帖子

Yahoo Finance API的替代品?

雅虎财务最近停止了他们的API.我一直在寻找替代品.到目前为止,我发现的是Google财经和Quandl.

Google财经在2011年被弃用,但似乎仍有所作为.但是,几乎没有文档,我需要提取我无法找到的股息数据.

Quandl似乎运行良好,但数据分布在多个数据库中,这使得及时和昂贵地获得适当的访问.

有没有人知道任何其他可行的替代品?

finance google-finance yahoo-api yahoo-finance quandl

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

如何解决pandas的导入错误?

我用python 2.7.7安装了Anaconda.
但是,每当我运行"import pandas"时,我都会收到错误:
"ImportError: C extension: y not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext --inplace' to build the C extensions first."
我尝试运行建议的命令,但它说明了这一点

skipping 'pandas\index.c' Cython extension (up-to-date)      
skipping 'pandas\src\period.c' Cython extension (up-to-date) 
skipping 'pandas\algos.c' Cython extension (up-to-date)      
skipping 'pandas\lib.c' Cython extension (up-to-date)        
skipping 'pandas\tslib.c' Cython extension (up-to-date)      
skipping 'pandas\parser.c' Cython extension (up-to-date)     
skipping 'pandas\hashtable.c' Cython extension (up-to-date)  
skipping 'pandas\src\sparse.c' Cython extension (up-to-date) 
skipping 'pandas\src\testing.c' Cython extension …
Run Code Online (Sandbox Code Playgroud)

python pydev python-import python-2.7 pandas

25
推荐指数
5
解决办法
5万
查看次数

如何更新已弃用的python zipline.transforms模块?

我使用quantopian zipline包http://www.zipline.io/beginner-tutorial.html编写了一个python程序.我最近更新了包,并且遇到了不推荐使用zipline.transforms包的问题.我使用了zipline.transforms包中的两个函数,batch_transform()MovingAverage.

我没有找到一个好的帖子来演示如何解决这个问题,除了说要替换batch_transform这个history()功能.但是,我不知道如何更换它.我还没有找到一篇文章告诉我们如何解决MovingAverage弃用问题.

这是我正在使用的代码.

from zipline.algorithm import TradingAlgorithm
from zipline.transforms import batch_transform
from zipline.transforms import MovingAverage


class TradingStrategy(TradingAlgorithm):

    def initialize(self, window_length=6):
        self.add_transform(
            MovingAverage, 'kernel', ['price'], window_length=self.window_length)

    @batch_transform
    def get_data(data, context):
        '''
        Collector for some days of historical prices.
        '''
        daily_prices = data.price[STOCKS + [BENCHMARK]]
        return daily_prices

strategy = TradingStrategy()
Run Code Online (Sandbox Code Playgroud)

有人可以举例说明如何更新上面的代码吗?我假设有很多人在处理有关流行的quantopian的问题.

python zipline

17
推荐指数
1
解决办法
328
查看次数

尝试使用Glide包构建Android项目,抛出"Unable to merge dex"错误

我正在运行Android Studio 3.0.我目前正在努力使Glide版本4.3.0工作,但与版本4.2.0有相同的问题.

我的项目运行正常,没有在我的build.gradle文件中添加Glide包依赖项,从这里下载https://github.com/bumptech/glide.我也按照这里的设置说明进行操作.首先,我将jar文件添加到我的libs文件夹,然后添加了依赖项.

完整的错误是

Error:Execution failed for task 
':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Run Code Online (Sandbox Code Playgroud)

我已经研究了很多这个问题,但只找到了其他软件包的解决方案,这些软件包为这些软件包提供了特定的修复程序,但是我无法找到这个特定软件包的解决方案.

这是完整的gradle堆栈跟踪.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)
    at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
    at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)
    at …
Run Code Online (Sandbox Code Playgroud)

android android-studio android-glide

9
推荐指数
1
解决办法
1733
查看次数

我编写的 GitHub Action 无法访问调用该操作的存储库文件

GitHub上有一个示例存储库,其中包含我正在处理的目录结构。要运行 GitHub Action,您只需转到存储库的 Action 选项卡并手动运行 Action。

\n
\n

我有一个自定义的 GitHub Action,以及pythonDocker 容器中的基础映像,但希望该python版本成为 GitHub Action 的输入。为此,我创建了第二个中间 Docker 容器,以使用python版本输入参数运行。

\n

我遇到的问题是我无权访问调用 GitHub Action 的原始存储库文件。例如,假设存储库被调用python-sample-project并且具有文件夹结构:

\n
python-sample-project\n\xe2\x94\x82   main.py\n\xe2\x94\x82   file1.py    \n\xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80folder1\n\xe2\x94\x82   \xe2\x94\x82   file2.py\n
Run Code Online (Sandbox Code Playgroud)\n

我看到了main.py,,file1.py并且folder1/file2.pyentrypoint.sh。但是,docker-action/entrypoint.sh我只看到 linux 文件夹结构和entrypoint.shdocker-action/Dockerfile.

\n

在我使用的 Alpine 示例中,操作entrypoint.sh脚本如下所示:

\n
python-sample-project\n\xe2\x94\x82   main.py\n\xe2\x94\x82   file1.py    \n\xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80folder1\n\xe2\x94\x82   \xe2\x94\x82   file2.py\n
Run Code Online (Sandbox Code Playgroud)\n

docker-action/有一个Dockerfile脚本entrypoint.sh,应该使用 Alpine(或 Python)的动态版本为内部容器运行

\n …

python github docker github-actions

9
推荐指数
1
解决办法
4714
查看次数

使用Python的pysftp,如何验证主机密钥?

我正在使用Python 2.7 pysftp程序包连接到SFTP服务器。

import pysftp

DOWNLOAD = {
"USERNAME": "username",
"PASSWORD": "password"
}

FTP_SITE = 'sftp.mysite.com'

srv = pysftp.Connection(host=FTP_SITE, username=DOWNLOAD['USERNAME'], 
                    password=DOWNLOAD['PASSWORD']
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,我得到了错误日志:

import pysftp

DOWNLOAD = {
"USERNAME": "username",
"PASSWORD": "password"
}

FTP_SITE = 'sftp.mysite.com'

srv = pysftp.Connection(host=FTP_SITE, username=DOWNLOAD['USERNAME'], 
                    password=DOWNLOAD['PASSWORD']
Run Code Online (Sandbox Code Playgroud)

我目前正在通过执行以下操作来关闭对主机密钥的检查:

cnopts = pysftp.CnOpts()
cnopts.hostkeys = None 
srv = pysftp.Connection(host=FTP_SITE, username=DOWNLOAD['USERNAME'], 
                         password=DOWNLOAD['PASSWORD'], cnopts=cnopts)
Run Code Online (Sandbox Code Playgroud)

我想保留主机密钥的安全性功能。谁能提供有关如何生成主机密钥的链接,或者在此处提供一小段代码示例?我没找到太多。

python ssh sftp pysftp

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

使用 python 的 pysftp 包,我在尝试上传文件时收到 OSError

我正在使用 Python 3 的 paramiko 包来建立 sftp 连接并上传文件。

我能够使用以下代码成功建立到服务器的连接。

import paramiko

key_file_test = './path_to_key_file/key_file.pub'

DOWNLOAD_UAT = {
    "USERNAME": "xxxxxxxx",
    "PASSWORD": "xxxxxxxx"
}

UAT_FTP_SITE = 'sftp-test.site.com'

transport = paramiko.Transport((UAT_SFTP_SITE,22))
transport.connect(username=DOWNLOAD_UAT['USERNAME'], password=DOWNLOAD_UAT['PASSWORD'])
transport.add_server_key(key)
sftp = paramiko.SFTPClient.from_transport(transport)

print(sftp.listdir())
''' ['archiv'] '''

sftp.put('test_sftp_upload_file.txt', remotepath='./')
Run Code Online (Sandbox Code Playgroud)

但是,当我运行上面的最后一行时,我得到以下错误输出。

---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-69-bec34aeb9958> in <module>()
----> 1 sftp.put('test_sftp_upload_file.txt', remotepath='./')

C:\ProgramData\Anaconda3\lib\site-packages\paramiko\sftp_client.py in put(self, localpath, remotepath, callback, confirm)
    712         file_size = os.stat(localpath).st_size
    713         with open(localpath, 'rb') as fl:
--> 714             return self.putfo(fl, remotepath, file_size, callback, confirm) …
Run Code Online (Sandbox Code Playgroud)

python sftp paramiko

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

熊猫-根据日期将数据框拆分为多个数据框?

我有一个带有多个列以及一个日期列的数据框。日期格式为15年12月31日,我将其设置为日期时间对象。

我将datetime列设置为索引,并希望对数据框的每个月执行回归计算。

我相信实现此目的的方法是将数据框基于月份拆分为多个数据框,存储到数据框列表中,然后对列表中的每个数据框执行回归。

我使用过groupby可以按月成功拆分数据帧,但是不确定如何正确地将groupby对象中的每个组转换为数据帧,以便能够在其上运行回归函数。

有谁知道如何根据日期将一个数据框拆分为多个数据框,或者更好地解决我的问题?

这是我到目前为止编写的代码

import pandas as pd
import numpy as np
import statsmodels.api as sm
from patsy import dmatrices

df = pd.read_csv('data.csv')
df['date'] = pd.to_datetime(df['date'], format='%Y%m%d')
df = df.set_index('date')

# Group dataframe on index by month and year 
# Groupby works, but dmatrices does not 
for df_group in df.groupby(pd.TimeGrouper("M")):
    y,X = dmatrices('value1 ~ value2 + value3', data=df_group,      
    return_type='dataframe')
Run Code Online (Sandbox Code Playgroud)

python datetime group-by pandas

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

使用python pysftp包,从服务器获取"SSHException:错误的主机密钥"错误

我正在使用pysftp软件包运行Python 3,版本0.2.9.

我有以下代码.我正在正确加载主机密钥,如线所示cnopts.hostkeys.keys().

import pysftp

key_file_test = './path_to_key_file/key_file.pub'

DOWNLOAD_UAT = {
    "USERNAME": "xxxxxxxx",
    "PASSWORD": "xxxxxxxx"
}

UAT_FTP_SITE = 'sftp-test.site.com'

cnopts = pysftp.CnOpts()
cnopts.hostkeys.load(key_file_test)
cnopts.hostkeys.keys()

'''['github.com', 'XXX.XX.XXX.XXX', 'sftp-test.site.com']'''

srv = pysftp.Connection(host=UAT_SFTP_SITE, username=DOWNLOAD_UAT['USERNAME'], 
                        password=DOWNLOAD_UAT['PASSWORD'], cnopts=cnopts, port=22)
Run Code Online (Sandbox Code Playgroud)

然后我运行最后一行时的错误是

---------------------------------------------------------------------------
SSHException                              Traceback (most recent call last)
<ipython-input-82-308ec955a92e> in <module>()
      8 
      9 srv = pysftp.Connection(host=UAT_SFTP_SITE, username=DOWNLOAD_UAT['USERNAME'], 
---> 10                         password=DOWNLOAD_UAT['PASSWORD'], cnopts=cnopts, port=22)
     11 data = srv.listdir()

C:\ProgramData\Anaconda3\lib\site-packages\pysftp\__init__.py in __init__(self, host, username, private_key, password, port, private_key_pass, ciphers, log, cnopts, default_path)
    141         self._transport.use_compression(self._cnopts.compression)
    142         self._set_authentication(password, private_key, …
Run Code Online (Sandbox Code Playgroud)

python sftp pysftp

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