Python 为什么来自字典的数据帧在R中的行为与通过网状结构的独立数据帧不同?
我在R中使用网状结构,并试图将pandas数据帧从字典转换为R数据帧,但我发现转换不起作用,我不知道为什么?我希望能够使用R语法(即$)访问数据帧列。当我用Python生成一个独立的数据帧并将其返回到R时,我没有任何问题 用PythonPython 为什么来自字典的数据帧在R中的行为与通过网状结构的独立数据帧不同?,python,r,pandas,dataframe,reticulate,Python,R,Pandas,Dataframe,Reticulate,我在R中使用网状结构,并试图将pandas数据帧从字典转换为R数据帧,但我发现转换不起作用,我不知道为什么?我希望能够使用R语法(即$)访问数据帧列。当我用Python生成一个独立的数据帧并将其返回到R时,我没有任何问题 用Python def createDataFrame(x): a=(x,x) b=pd数据帧(np.ones(a)*x) 返回b def createDictionary(x): dict1={} a=(x,x) b=pd数据帧(np.ones(a)*x) dict1['t
def createDataFrame(x):
a=(x,x)
b=pd数据帧(np.ones(a)*x)
返回b
def createDictionary(x):
dict1={}
a=(x,x)
b=pd数据帧(np.ones(a)*x)
dict1['test']=pd.数据帧(b)
返回指令1
df=createDataFrame(3)
Dict=createDictionary(3)
在R中使用网状包装
source("py_script.py")
df$'1'
R_Df <- Dict$test
R_Df$'1'
source(“py_script.py”)
df$'1'
R_Df当我查看数据时,R_Df
的类如下所示
> class(R_Df)
[1] "pandas.core.frame.DataFrame"
[2] "pandas.core.generic.NDFrame"
[3] "pandas.core.base.PandasObject"
[4] "pandas.core.base.StringMixin"
[5] "pandas.core.accessor.DirNamesMixin"
[6] "pandas.core.base.SelectionMixin"
[7] "python.builtin.object"
此类不支持R数据帧中的数据
我将建议两种方法
方法1。诡计
您应该使用rjson
reticulate::source_python('code.py')
library(rjson)
R_Df <- data.frame(Dict$test)
library(data.table) # I used data.table library cause of column name.
R_Df = rbindlist(lapply(fromJSON(R_Df$to_json(orient='records')), as.data.table))
> R_Df$'1'
[1] 3 3 3
devtools::install_github("rstudio/reticulate")
library(reticulate)
reticulate::source_python('code.py')
R_df<-Dict$test
> R_Df$'1'
[1] 3 3 3