我有一些R代码,将data.frame
作为输入,其中一列在其单元格中包含list
个实例,例如:
data.frame(x=c("a", "b", "c"), y=I(list(c(1,2,3),c(4,5,6),c(7,8,9))))
看起来像
x y
1 a 1, 2, 3
2 b 4, 5, 6
3 c 7, 8, 9
我想用Python创建一个类似的熊猫DataFrame
,并使用rpy2库(版本2.9.4)中的工具将其传递到我的R代码中。但是,当我运行以下命令时:
from rpy2.robjects import pandas2ri
pandas2ri.activate()
df = DataFrame({
"x" : ["a", "b", "c"] ,
"y" : [[1,2,3], [4,5,6], [7,8,9] ]
})
r_df = pandas2ri.py2ri(df)
print(r_df)
我得到以下输出:
x y.0.1L y.0.2L y.0.3L y.1.4L y.1.5L y.1.6L y.2.7L y.2.8L y.2.9L
0 a 1 2 3 4 5 6 7 8 9
1 b 1 2 3 4 5 6 7 8 9
2 c 1 2 3 4 5 6 7 8 9
当然,R代码最初是使用“禁止”功能I()
来将list
实例保留在data.frame
中。有什么方法可以通过rpy2接口表达类似的意图?