我使用数据帧的Pandas
函数(Pandas / Python 2.7)在磁盘上写了to_hdf()
数据帧。
我想在R环境中阅读这个数据帧。我正在使用R中的rhdf5
包来读取文件。
转储数据框的Python代码
data.to_hdf('myDataFrame.h5', 'table', append=True) #data is a pandas dataframe
R代码阅读
library(rhdf5)
data <- h5read("myDataFrame.h5", "table")
如何实现这一目标?有没有更好的方法在两种语言之间交换数据帧?我不想涉及.csv
,因为它会丢失所有元信息,每次阅读都会慢一些。
我没有错误消息,只有几个警告。但我读到的data
无法与我想要的相似,我无法找到我存储的内容。这是我尝试探索读取对象时的样子。我存储的数据帧有形状(1,400,000 x 267)。
List of 2
$ _i_table:List of 1
..$ index:List of 10
.. ..$ abounds : int [1:680(1d)] 0 2048 4096 6144 8192 10240 12288 14336 16384 18432 ...
.. ..$ bounds : int [1:135, 1:5] 2048 4096 6144 8192 10240 12288 14336 16384 18432 20480 ...
.. ..$ indices : int [1:278528, 1:5] 0 0 0 0 0 0 0 0 0 0 ...
.. ..$ indicesLR: int [1:278528(1d)] 2165 2165 2165 2165 2165 2165 2165 2165 2165 2165 ...
.. ..$ mbounds : int [1:680(1d)] 1024 3072 5120 7168 9216 11264 13312 15360 17408 19456 ...
.. ..$ mranges : int [1:5(1d)] 140288 418816 697344 975872 1254400
.. ..$ ranges : int [1:2, 1:5] 0 278527 278528 557055 557056 835583 835584 1114111 1114112 1392639
.. ..$ sorted : int [1:278528, 1:5] 0 1 2 3 4 5 6 7 8 9 ...
.. ..$ sortedLR : int [1:278665(1d)] 1392640 1392641 1392642 1392643 1392644 1392645 1392646 1392647 1392648 1392649 ...
.. ..$ zbounds : int [1:680(1d)] 2047 4095 6143 8191 10239 12287 14335 16383 18431 20479 ...
$ table :'data.frame': 1400000 obs. of 6 variables:
..$ index : int [1:1400000(1d)] 0 1 2 3 4 5 6 7 8 9 ...
..$ values_block_0: num [1:1400000(1d)] NA NA NA NA NA NA NA NA NA NA ...
..$ values_block_1: num [1:1400000(1d)] NA NA NA NA NA NA NA NA NA NA ...
..$ values_block_2: num [1:1400000(1d)] NA NA NA NA NA NA NA NA NA NA ...
..$ values_block_3: num [1:1400000(1d)] NA NA NA NA NA NA NA NA NA NA ...
..$ values_block_4: num [1:1400000(1d)] NA NA NA NA NA NA NA NA NA NA ...