将数据帧从 python 传输到 julia

Posted

技术标签:

【中文标题】将数据帧从 python 传输到 julia【英文标题】:transfer a data frame from python to julia 【发布时间】:2018-12-03 19:10:00 【问题描述】:

我有一个 250 列和 4562 行的数据框。我想在 Julialang 中使用它。我曾尝试使用 HDF5 传输数据,但读取文件时出错。 代码:

using HDF5
using DataFrames  
data=h5open("Database.h5")
typeof(data)
println("names \n",names(data))
println("\n dump")
println(names(data))
m=data["nse"]
println(names(m))
jj=m["table"]
s=read(jj)

这是我得到的错误:

HDF5-DIAG: Error detected in HDF5 (1.10.2) thread 0:
  #000: H5O.c line 120 in H5Oopen(): unable to open object
    major: Object header
    minor: Can't open object
  #001: H5Oint.c line 553 in H5O_open_name(): unable to open object
    major: Object header
    minor: Can't open object
  #002: H5Oint.c line 589 in H5O_open_by_loc(): unable to determine object class
    major: Object header
    minor: Can't get value
  #003: H5Oint.c line 1575 in H5O_obj_class(): unable to load object header
    major: Object header
    minor: Unable to protect metadata
  #004: H5Oint.c line 889 in H5O_protect(): unable to load object header
    major: Object header
    minor: Unable to protect metadata
  #005: H5AC.c line 1763 in H5AC_protect(): H5C_protect() failed
    major: Object cache
    minor: Unable to protect metadata
  #006: H5C.c line 2565 in H5C_protect(): can't load entry
    major: Object cache
    minor: Unable to load metadata into cache
  #007: H5C.c line 6733 in H5C_load_entry(): invalid len with respect to EOA
    major: Object cache
    minor: Bad value
  #008: H5C.c line 6657 in H5C__verify_len_eoa(): len not positive after adjustment for EOA
    major: Object cache
    minor: Bad value
String["_i_table", "table"]

非常感谢任何帮助!

【问题讨论】:

a) 尝试h5read("Database.h5") 而不是h5open(),否则data 是文件指针,而不是数据本身 b) 是Database.h5 与您的 julia 文件在同一目录中? 我也试过 h5open()。同样的错误。是的,数据库在同一目录中。 【参考方案1】:

为此,我总是使用feather format。

例如在python中

import feather
feather.write_dataframe(df, "path/to/file.feather")

然后在 Julia 中

using DataFrames, Feather
df = Feather.read("path/to/file.feather")

您也可以从 R 加载/保存。

【讨论】:

谢谢!!这行得通。我在 python 中安装了羽毛格式包。

以上是关于将数据帧从 python 传输到 julia的主要内容,如果未能解决你的问题,请参考以下文章

如何将函数捕获的帧从另一个库传递给 OpenCV 函数?

使用 rmongodb 和 plyr 将大型 MongoDB 集合传输到 R 中的 data.frame

将数据帧从 pandas 转换为 pyspark 到 Foundry 的数据类型

如何使用 Python 将数据从 Teradata 传输到 Greenplum?

使用python将数据帧从十六进制转换为二进制

如何使用 python 脚本将原始数据从 `/dev/graphics/fb0` 传输到图片?