加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何将R中保存为RData的数据框导入到pandas中?

发布时间:2020-12-16 22:31:57 所属栏目:Python 来源:网络整理
导读:我正在尝试将R中保存为RData的数据帧导入到pandas数据帧中.我怎么能这样做?我没有成功尝试使用rpy2如下: import pandas as pdfrom rpy2.robjects import rfrom rpy2.robjects import pandas2ripandas2ri.activate()# I use iris for convenience but I cou

我正在尝试将R中保存为RData的数据帧导入到pandas数据帧中.我怎么能这样做?我没有成功尝试使用rpy2如下:

import pandas as pd
from rpy2.robjects import r
from rpy2.robjects import pandas2ri
pandas2ri.activate()

# I use iris for convenience but I could have done r.load('my_data.RData')
print(r.data('iris'))
print(r['iris'].head())
print(type(r.data('iris')))

print(pandas2ri.ri2py_dataframe(r.data('iris')))
print(pandas2ri.ri2py(r.data('iris')))
print(pd.DataFrame(r.data('iris')))

输出:

[1] "iris"

   Sepal.Length  Sepal.Width  Petal.Length  Petal.Width Species
1           5.1          3.5           1.4          0.2  setosa
2           4.9          3.0           1.4          0.2  setosa
3           4.7          3.2           1.3          0.2  setosa
4           4.6          3.1           1.5          0.2  setosa
5           5.0          3.6           1.4          0.2  setosa

我使用pandas 0.20.1 python 3.6 x64 Windows 7.

最佳答案
数据帧的广义转换结果是昂贵的操作,因为某些类型的列需要复制.本地转换规则可能更好:

from rpy2.robjects import pandas2ri
from rpy2.robjects import default_converter
from rpy2.robjects.conversion import localconverter

print(r.data('iris'))
with localconverter(default_converter + pandas2ri.converter) as cv:
    pd_iris = r('iris')
# this is a pandas DataFrame
pd_iris

否则,以下是“正常工作”(Linux,rpy2的分支默认负责人):

import pandas as pd
from rpy2.robjects import r
from rpy2.robjects import pandas2ri
pandas2ri.activate()

pd_iris = r('iris')
pd_iris

如果它不适合您,则Windows上的rpy2可能存在问题(还有另一个问题 – 在Windows上不完全支持rpy2).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读