【问题标题】:Convert Julia Dataframe to Python Pandas data frame将 Julia 数据框转换为 Python Pandas 数据框
【发布时间】:2020-06-17 13:20:17
【问题描述】:

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

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

任何帮助都会很有用!

这是我目前设置的代码。知道我的“优化程序”后台发生的事情并没有多大用处,而只是知道“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)

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

在 ()

----> 1 次测试 = pd.DataFrame(results)

in init(自我、数据、索引、列、dtype、副本)

420 dtype=values.dtype,复制=假) 421 其他: 422 raise ValueError('DataFrame 构造函数未正确调用!')

423

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

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

【问题讨论】:

  • 显示您已经尝试过的内容会很有用。
  • 不能写成csv然后用Python读吗?
  • 谢谢@drec4s 我已经添加了一些代码。
  • @furas,我意识到这是一个选项,但我宁愿将数据管理保留在内部,因为我需要使用 Python Pandas 操作最终输出。

标签: python pandas dataframe julia


【解决方案1】:

如果我使用 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

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

【讨论】:

  • 有没有办法反过来做,即将pandas数据帧转换为julia数据帧(例如,当工作主要在python中完成并且只执行瓶颈时)朱莉娅)?
  • 更准确地说:我们可以做到jl.dfj = dfjl.dfjPyObject 而不是数据框(即使使用包DataFrames
猜你喜欢
  • 2014-08-19
  • 1970-01-01
  • 2018-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-14
  • 2018-09-05
相关资源
最近更新 更多