【问题标题】:how to make R datafile to Python type如何将 R 数据文件转换为 Python 类型
【发布时间】:2018-06-15 03:37:33
【问题描述】:

我想将 R 数据类型转换为 Python 数据类型下面是整个代码

def convert_datafiles(datasets_folder):
import rpy2.robjects
rpy2.robjects.numpy2ri.activate()
pandas2ri.activate()
for root, dirs, files in os.walk(datasets_folder):
    for name in files:
        # sort out .RData files
        if name.endswith('.RData'):
            name_ = os.path.splitext(name)[0]
            name_path = os.path.join(datasets_folder, name_)
            # creat sub-directory
            if not os.path.exists(name_path):
                os.makedirs(name_path)
            file_path = os.path.join(root, name)
            robj = robjects.r.load(file_path)
            # check out subfiles in the data frame
            for var in robj:

                ###### error   happend right here
                myRData = pandas2ri.ri2py_dataframe( var  )
                ####error happend right here



                # convert to DataFrame
                if not isinstance(myRData, pd.DataFrame):
                    myRData = pd.DataFrame(myRData)
                var_path = os.path.join(datasets_folder,name_,var+'.csv')
                myRData.to_csv(var_path)
            os.remove(os.path.join(datasets_folder, name)) # clean up

print ("=> Success!")

我想将 R 数据类型设置为 pythone 类型,但错误不断弹出如下:AttributeError: 'str' object has no attribute 'dtype'

我应该如何解决这个错误?

【问题讨论】:

    标签: pandas dataframe rpy2


    【解决方案1】:

    rpy2 documentation 在与 pandas 的交互方面有些不完整,但单元测试将提供examples of conversion。例如:

    rdataf = robjects.r('data.frame(a=1:2, '
                        '           b=I(c("a", "b")), '
                        '           c=c("a", "b"))')
    with localconverter(default_converter + rpyp.converter) as cv:
        pandas_df = robjects.conversion.ri2py(rdataf)
    

    【讨论】:

      猜你喜欢
      • 2017-05-30
      • 1970-01-01
      • 2020-05-24
      • 2023-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-22
      • 2014-10-09
      相关资源
      最近更新 更多