Я думаю, что название затрагивает этот вопрос, но для выяснения:
pandas Пакет python имеет тип данных DataFrame для хранения данных таблицы в python. Он также имеет удобный интерфейс для формата hdf5, поэтому pandas DataFrames (и другие данные) можно сохранить с помощью простого dict (при условии, что у вас установлен pytables)
import pandas
import numpy
d = pandas.HDFStore('data.h5')
d['testdata'] = pandas.DataFrame({'N': numpy.random.randn(5)})
d.close()
Пока все хорошо. Однако, если я попытаюсь загрузить тот же hdf5 в R, я вижу, что все не так просто:
> library(hdf5)
> hdf5load('data.h5')
NULL
> testdata
$block0_values
[,1] [,2] [,3] [,4] [,5]
[1,] 1.498147 0.8843877 -1.081656 0.08717049 -1.302641
attr(,"CLASS")
[1] "ARRAY"
attr(,"VERSION")
[1] "2.3"
attr(,"TITLE")
[1] ""
attr(,"FLAVOR")
[1] "numpy"
$block0_items
[1] "N"
attr(,"CLASS")
[1] "ARRAY"
attr(,"VERSION")
[1] "2.3"
attr(,"TITLE")
[1] ""
attr(,"FLAVOR")
[1] "numpy"
attr(,"kind")
[1] "string"
attr(,"name")
[1] "N."
$axis1
[1] 0 1 2 3 4
attr(,"CLASS")
[1] "ARRAY"
attr(,"VERSION")
[1] "2.3"
attr(,"TITLE")
[1] ""
attr(,"FLAVOR")
[1] "numpy"
attr(,"kind")
[1] "integer"
attr(,"name")
[1] "N."
$axis0
[1] "N"
attr(,"CLASS")
[1] "ARRAY"
attr(,"VERSION")
[1] "2.3"
attr(,"TITLE")
[1] ""
attr(,"FLAVOR")
[1] "numpy"
attr(,"kind")
[1] "string"
attr(,"name")
[1] "N."
attr(,"TITLE")
[1] ""
attr(,"CLASS")
[1] "GROUP"
attr(,"VERSION")
[1] "1.0"
attr(,"ndim")
[1] 2
attr(,"axis0_variety")
[1] "regular"
attr(,"axis1_variety")
[1] "regular"
attr(,"nblocks")
[1] 1
attr(,"block0_items_variety")
[1] "regular"
attr(,"pandas_type")
[1] "frame"
Это подводит меня к моему вопросу: в идеале я смог бы сохранить назад и вперед от R до pandas. Я, очевидно, могу написать оболочку из pandas в R (я думаю... хотя я думаю, что если я использую pandas MultiIndex, который может становится сложнее), но я не думаю, что могу легко использовать эти данные в pandas. Любые предложения?
Бонус: я действительно хочу использовать пакет data.table в R с фреймворком pandas (подходом для подбора является подозрительно подобный в обоих пакетах). Любая помощь по этому поводу очень ценится.