雅虎财务最近停止了他们的API.我一直在寻找替代品.到目前为止,我发现的是Google财经和Quandl.
Google财经在2011年被弃用,但似乎仍有所作为.但是,几乎没有文档,我需要提取我无法找到的股息数据.
Quandl似乎运行良好,但数据分布在多个数据库中,这使得及时和昂贵地获得适当的访问.
有没有人知道任何其他可行的替代品?
我用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) 我使用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的问题.
我正在运行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) GitHub上有一个示例存储库,其中包含我正在处理的目录结构。要运行 GitHub Action,您只需转到存储库的 Action 选项卡并手动运行 Action。
\n我有一个自定义的 GitHub Action,以及pythonDocker 容器中的基础映像,但希望该python版本成为 GitHub Action 的输入。为此,我创建了第二个中间 Docker 容器,以使用python版本输入参数运行。
我遇到的问题是我无权访问调用 GitHub Action 的原始存储库文件。例如,假设存储库被调用python-sample-project并且具有文件夹结构:
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\nRun Code Online (Sandbox Code Playgroud)\n我看到了main.py,,file1.py并且folder1/file2.py在entrypoint.sh。但是,docker-action/entrypoint.sh我只看到 linux 文件夹结构和entrypoint.sh在docker-action/Dockerfile.
在我使用的 Alpine 示例中,操作entrypoint.sh脚本如下所示:
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\nRun Code Online (Sandbox Code Playgroud)\n我docker-action/有一个Dockerfile脚本entrypoint.sh,应该使用 Alpine(或 Python)的动态版本为内部容器运行
我正在使用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 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) 我有一个带有多个列以及一个日期列的数据框。日期格式为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) 我正在使用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)