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

问题描述 投票:1回答:1

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

[这是5年前提出的类似问题here。但是,没有任何代码可以建议如何完成传输。

任何帮助都会有用!

这是我当前设置的代码。知道我的“ 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)

值错误回溯(最近一次通话最近)

in()

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

init中(自身,数据,索引,列,dtype,副本)

420 dtype = values.dtype,copy = False)其他421422引发ValueError('DataFrame构造函数未正确调用!')

423

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

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

python pandas dataframe julia
1个回答
1
投票

如果使用DataFrames.jl包,则会出现错误(在Python中读取Julia数据帧)。但是,它与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

[已在Win10,Python 3.8.2和Julia 1.3.1上进行了测试

© www.soinside.com 2019 - 2024. All rights reserved.