5

在 Julia 中,我正在调用 Python 模块 pandas_datareader 从网络下载数据:

using PyCall
@pyimport datetime
@pyimport pandas_datareader.data as web
gdp = web.DataReader("GDPCA","fred",start=datetime.datetime(1929,1,1))

变量 gdp 是一个 PyObject 对象。因此,我无法操纵它(以日志为例)。如何将其转换为数组?我试过 convert(Array{Float64,2},gdp),但它只会让 Julia 崩溃。

谢谢!

4

1 回答 1

2

在这种@pyimport情况下,宏用于通过PyObject类型操作 Python 对象,即 pandas DataFrame。Given o::PyObject,o[:attribute]相当于o.attributePython 中的,具有自动类型转换。所以下面的代码片段展示了如何通过调用 Python 函数来获取 Julia 数组,

julia> using PyCall
julia> @pyimport datetime
julia> gdp = web.DataReader("GDPCA","fred",start=datetime.datetime(1929,1,1))
julia> typeof(gdp)
PyCall.PyObject
julia> gdp[:values]
87x1 Array{Float64,2}:
1056.6
966.7
904.8
788.2
778.3
...
于 2016-08-29T06:32:21.133 回答