如何从R到pandas获取数据

时间:2016-09-20 11:49:05

标签: python r pandas rpy2

在一个jupiter笔记本中,我在R中创建了一些2-d-list

%%R
first <- "first"
second <- "second"

names(first) <- "first_thing"
names(second) <- "second_thing"

x <- list()
index <- length(x)+1
x[[index]] = first
x[[index +1]] = second

%Rpull x不返回漂亮的表示,而是返回ListVector。如何将其转换为更好的东西,例如一个dict / pd.Dataframe?到目前为止,我没有运气http://pandas.pydata.org/pandas-docs/stable/r_interface.html pull from R

修改

我要转换的列表是一个二维列表,如results从上面剪切的更新代码

2 个答案:

答案 0 :(得分:1)

只需切片ListVector

%Rpull x
pd.DataFrame(data=[i[0] for i in x], columns=['X'])

Image

如果你想要一本字典:

dict([[i,j[0]] for i,j in enumerate(x)])
{0: 'first', 1: 'first'}

答案 1 :(得分:0)

由于您创建了R列表(而不是数据框), 返回的Python对象是ListVector

R列表可以有重复的名称,转换为dict无法保证安全的内容。

如果你感到幸运,想要一个字典,那就相当简单了。 例如:

 from rpy2.robjects.vectors import ListVector
 l = ListVector({'a':1, 'b':2})
 d = dict(l.items())