将 Julia 数据框转换为 Python Pandas 数据框

Wil*_*man 4 python dataframe pandas julia

我正在尝试将 PyCall.jlwrap ('Julia') 对象转换为 Pandas 数据帧。我正在使用 PyJulia 在 Julia 中运行优化算法,结果会输出一个数据帧对象。我想将该对象转换为 Pandas 数据框。

这是一个与 5 年前在这里提出的类似问题。但是,没有任何代码建议如何完成传输。

任何帮助都会有用!

这是我目前设置的代码。知道在我的“optimization_program”的背景中发生了什么并不是很有用,而只是知道“run_hybrid”和“run_storage”命令返回的内容返回了一个数据帧:

### load in necessary modules for pyjulia    
from julia import Main as jl 

##load my user defined module
jl.include("optimization_program_v3.jl")

##run function from module
results = jl.run_hybrid(generic_inputs)

##test type of item returned
jl.typeof(results)
returns: <PyCall.jlwrap DataFrame>

##try to convert to pandas
test = pd.DataFrame(results)
Run Code Online (Sandbox Code Playgroud)

值错误回溯(最近一次调用)

在 ()

----> 1 测试 = pd.DataFrame(结果)

init (self, data, index, columns, dtype, copy)

第 420 章

423

424 NDFrame。init (self, mgr, fastpath=True)

ValueError:未正确调用 DataFrame 构造函数!

dre*_*c4s 6

如果我使用DataFrames.jl包,我会收到一个错误(在 Python 中读取 Julia DataFrame)。但是,它似乎与Pandas.jl包配合得很好:

>>> from julia import Main as jl
>>> import pandas as pd
>>> jl.eval('using Pandas')
>>> res = jl.eval('DataFrame(Dict(:age=>[27, 29, 27], :name=>["James", "Jill", "Jake"]))')
>>> jl.typeof(res)
#<PyCall.jlwrap PyObject>
>>> df = pd.DataFrame(res)
>>> df
    age   name
0   27  James
1   29   Jill
2   27   Jake
Run Code Online (Sandbox Code Playgroud)

这是在 Win10、Python 3.8.2 和 Julia 1.3.1 上测试的