在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对象。因此,我无法操纵它(以日志为例)。如何将其转换为数组?我试过转换(Array {Float64,2},gdp),但它只会崩溃朱莉娅。
谢谢!
答案 0 :(得分:2)
@pyimport
宏用于通过PyObject
类型操作Python对象,在这种情况下是pandas DataFrame。给定o::PyObject
,o[:attribute]
相当于Python中的o.attribute
,具有自动类型转换功能。所以下面的代码片段展示了如何通过调用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
...