使用rpy2将带有时间戳列的python数据帧(pandas)转换为R数据帧

时间:2016-09-26 13:16:50

标签: python r pandas rpy2

我有一个pandas数据帧(df),数据如下

                        time      id  locality_id  supply_hours
0  2016-08-31 18:30:00+00:00     NaN          NaN           NaN
1  2016-08-31 19:30:00+00:00     NaN          NaN           NaN
2  2016-08-31 20:30:00+00:00     NaN          NaN           NaN
3  2016-08-31 21:30:00+00:00  453604            1      0.095328
4  2016-08-31 22:30:00+00:00     NaN          NaN           NaN

我需要将其转换为R数据帧。根据文档,我需要的只是

from rpy2.robjects import pandas2ri
pandas2ri.activate()
rdf=rpy2.robjects.DataFrame(df)

但是当我尝试时会出现以下错误

    NotImplementedError: Conversion 'py2ri' not defined for 
objects of type '<class 'pandas.tslib.Timestamp'>'

以下成功

rdf2=rpy2.robjects.DataFrame(df[['locality_id','supply_hours']])

很明显,在数据框中转换时间列存在一些问题。如何使这个工作?我在rpy2 == 2.8.3和pandas == 0.16.2。

1 个答案:

答案 0 :(得分:0)

而不是使用dt[c('a','b','c')]使用rdf=rpy2.robjects.DataFrame(df)) 以下是一个对我有用的例子!

rdf= pandas2ri.py2ri(df