【发布时间】:2017-12-13 11:15:50
【问题描述】:
我在 HDF5 文件中保存了 pandas 中的数据框:
import numpy as np
import pandas as pd
np.random.seed(1)
frame = pd.DataFrame(np.random.randn(4, 3), columns=list('bde'),
index=['Utah', 'Ohio', 'Texas', 'Oregon'])
print('frame: {0}'.format(frame))
store = pd.HDFStore('file.h5')
store['df'] = frame
store.close()
框架如下:
frame: b d e
Utah 1.624345 -0.611756 -0.528172
Ohio -1.072969 0.865408 -2.301539
Texas 1.744812 -0.761207 0.319039
Oregon -0.249370 1.462108 -2.060141
我正在尝试在 R 中加载它:
#source("http://bioconductor.org/biocLite.R")
#biocLite("rhdf5")
library(rhdf5)
frame = h5ls("file.h5")
frame
然而,一旦加载到 R 中,它看起来如下:
> frame
group name otype dclass dim
0 / df H5I_GROUP
1 /df axis0 H5I_DATASET STRING 3
2 /df axis1 H5I_DATASET STRING 4
3 /df block0_items H5I_DATASET STRING 3
4 /df block0_values H5I_DATASET FLOAT 3 x 4
>
我也试过了:
frame2 = h5read("file.h5", '/df')
frame2
但是它返回几个值但没有数据框:
> frame2
$axis0
[1] "b" "d" "e"
$axis1
[1] "Utah" "Ohio" "Texas" "Oregon"
$block0_items
[1] "b" "d" "e"
$block0_values
[,1] [,2] [,3] [,4]
[1,] 1.6243454 -1.0729686 1.7448118 -0.2493704
[2,] -0.6117564 0.8654076 -0.7612069 1.4621079
[3,] -0.5281718 -2.3015387 0.3190391 -2.0601407
如何在 R 中将保存在 pandas 中的数据框加载为 HDF5 文件?
【问题讨论】:
-
检查这个github.com/pandas-dev/pandas/issues/9636 ?具有 R 的 sn-p 功能。
-
@JohnGalt 谢谢,它似乎工作得很好。欢迎您将评论转换为答案。
标签: python r pandas dataframe hdf5