Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将df转换为rda文件_Python_R_Pandas_Rpy2_Rda - Fatal编程技术网

Python 将df转换为rda文件

Python 将df转换为rda文件,python,r,pandas,rpy2,rda,Python,R,Pandas,Rpy2,Rda,我正在用Python清理数据,但我们用于可视化的程序是为R设置的。我正在尝试将数据帧保存为rda文件。我可以在这里找到资源开始,但是我的df有92列,当它转换为rda时,它有1942列,与下面的类似 import rpy2 from rpy2 import robjects from rpy2.robjects import pandas2ri pandas2ri.activate() df = pd.DataFrame({'A': [1, 2, 3], 'B':[10, 9, 8], 'C'

我正在用Python清理数据,但我们用于可视化的程序是为R设置的。我正在尝试将数据帧保存为rda文件。我可以在这里找到资源开始,但是我的df有92列,当它转换为rda时,它有1942列,与下面的类似

import rpy2
from rpy2 import robjects
from rpy2.robjects import pandas2ri
pandas2ri.activate()

df = pd.DataFrame({'A': [1, 2, 3], 'B':[10, 9, 8], 'C':['A', 'B', 'C']})


    A   B   C
0   1   10  A
1   2   9   B
2   3   8   C
编辑:我尝试了这两种转换,结果都一样

df = pandas2ri.py2ri(df)

我认为你在使用:

这对我来说很好用。我使用的是R3.6.1、python 3.6.10、pandas 1.0.1和rpy 2.9.4。下面是另一种解决方案,使用pickle,但需要在R中使用网状物:

import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B':[10, 9, 8], 'C':['A', 'B', 'C']})
df.to_pickle("./test.pkl")

In R:
library(reticulate)
pd = import("pandas",convert=TRUE)
str(df)
'data.frame':   3 obs. of  3 variables:
 $ A: num  1 2 3
 $ B: num  10 9 8
 $ C: chr  "A" "B" "C"
 - attr(*, "pandas.index")=RangeIndex(start=0, stop=3, step=1)

我建议将它们保存为羽毛文件。然后从R直接打开feather文件。我无法复制你不想要的结果。请张贴:
打印(rpy2.\uuuuu版本)
。由于是一个正在开发的项目,请务必使用最新版本。顺便说一句,.rdata通常用于允许多个对象保存到磁盘的环境,因此对于一个数据帧来说,它是过度填充的。考虑RDS,这是一个保存在磁盘上的特定对象。@ PaFaIT我总共有6个DFS,我想保存在RDA文件中。我使用的是rpy2的2.9.4版本。实际结果是什么?您是如何生成它的?请出示那条线。仅供参考-确保所有发布的代码都可运行。
import rpy2
from rpy2 import robjects
from rpy2.robjects import pandas2ri
import pandas as pd
pandas2ri.activate()

df = pd.DataFrame({'A': [1, 2, 3], 'B':[10, 9, 8], 'C':['A', 'B', 'C']})
r_data = pandas2ri.py2ri(df)
robjects.r.assign("df", r_data)
robjects.r("save(df, file='test.rda')")

In R:
load("test.rda")
> ls()
[1] "df"
> str(df)
'data.frame':   3 obs. of  3 variables:
 $ A: int  1 2 3
 $ B: int  10 9 8
 $ C: chr  "A" "B" "C"
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B':[10, 9, 8], 'C':['A', 'B', 'C']})
df.to_pickle("./test.pkl")

In R:
library(reticulate)
pd = import("pandas",convert=TRUE)
str(df)
'data.frame':   3 obs. of  3 variables:
 $ A: num  1 2 3
 $ B: num  10 9 8
 $ C: chr  "A" "B" "C"
 - attr(*, "pandas.index")=RangeIndex(start=0, stop=3, step=1)