python调用julia_如何在Julia中使用PyCall将Python输出转换为Julia DataFrame

我想从quandl中检索一些数据并在Julia中分析它们。遗憾的是,还没有正式的API(尚未)。我知道这个解决方案,但它的功能仍然非常有限,并且不遵循与原始Python API相同的语法。

我认为使用PyCall从Julia内部使用官方Python API检索数据是明智之举。这确实产生了输出,但我不确定如何将其转换为我能够在Julia中使用的格式(理想情况下是DataFrame)。

我尝试了以下内容。

using PyCall, DataFrames

@pyimport quandl

data = quandl.get("WIKI/AAPL", returns ="pandas");

Julia将此输出转换为Dict{Any,Any}。当使用returns ="numpy"而不是returns ="pandas"时,我最终得到PyObject rec.array。

如何让data成为Julia DataFrame,因为quandl.jl会返回它?请注意,quandl.jl对我来说不是一个选项,因为它不支持自动检索多个资源并且缺少其他一些功能,因此我必须使用Python API。

谢谢你的任何建议!

这是一个选项:

首先,从data对象中提取列名:

julia> colnames = map(Symbol, data[:columns]);

12-element Array{Symbol,1}:

:Open

:High

:Low

:Close

:Volume

Symbol("Ex-Dividend")

Symbol("Split Ratio")

Symbol("Adj. Open")

Symbol("Adj. High")

Symbol("Adj. Low")

Symbol("Adj. Close")

Symbol("Adj. Volume")

然后将所有列倒入DataFrame:

julia> y = DataFrame(Any[Array(data[c]) for c in colnames], colnames)

6×12 DataFrames.DataFrame

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值