Pandas datetime64[ns]系列的rpy2错误

Pandas datetime64[ns]系列的rpy2错误,pandas,numpy,rpy2,Pandas,Numpy,Rpy2,如何将datetime64[ns]数据从rpy2传递到R?下面是一个简单的例子: 将熊猫作为pd导入 将rpy2.robjects导入为robjs 从rpy2.robject导入pandas2ri pandas2ri.activate() dti=pd.日期范围('2018-01-01',期间=3,频率=H') robjs.r.摘要(dti) 由于ValueError失败:ValueError:未知的numpy数组类型“datetime64[ns]”,rpy2版本3.3.4和pandas 1.

如何将datetime64[ns]数据从rpy2传递到R?下面是一个简单的例子:

将熊猫作为pd导入
将rpy2.robjects导入为robjs
从rpy2.robject导入pandas2ri
pandas2ri.activate()
dti=pd.日期范围('2018-01-01',期间=3,频率=H')
robjs.r.摘要(dti)

由于ValueError失败:
ValueError:未知的numpy数组类型“datetime64[ns]”
,rpy2版本3.3.4和pandas 1.0.5。

而不是像您那样将
DatetimeIndex
传递到
R

dti = pd.date_range('2018-01-01', periods=3, freq='H')
type(dti)
pandas.core.indexes.datetimes.DatetimeIndex
尝试将数据包装到
DataFrame
对象中:

dti = pd.DataFrame({"DatetimeIndex": pd.date_range('2018-01-01', periods=3, freq='H')})
type(dti)
pandas.core.frame.DataFrame
结果是:

robjs.r.summary(dti)
array(['Min.   :2018-01-01 00:00:00  ', '1st Qu.:2018-01-01 00:30:00  ',
       'Median :2018-01-01 01:00:00  ', 'Mean   :2018-01-01 01:00:00  ',
       '3rd Qu.:2018-01-01 01:30:00  ', 'Max.   :2018-01-01 02:00:00  '],
      dtype='<U29')
robjs.r.summary(dti)
阵列(['分钟:2018-01-01 00:00:00','第一区:2018-01-01 00:30:00',
“中位数:2018-01-01 01:00:00”,“平均数:2018-01-01:00:00”,
“第三区:2018-01-01 01:30:00”,“最大值:2018-01-01 02:00:00”],

dtype='而不是像您那样将
DatetimeIndex
传递给
R

dti = pd.date_range('2018-01-01', periods=3, freq='H')
type(dti)
pandas.core.indexes.datetimes.DatetimeIndex
尝试将数据包装到
DataFrame
对象中:

dti = pd.DataFrame({"DatetimeIndex": pd.date_range('2018-01-01', periods=3, freq='H')})
type(dti)
pandas.core.frame.DataFrame
结果是:

robjs.r.summary(dti)
array(['Min.   :2018-01-01 00:00:00  ', '1st Qu.:2018-01-01 00:30:00  ',
       'Median :2018-01-01 01:00:00  ', 'Mean   :2018-01-01 01:00:00  ',
       '3rd Qu.:2018-01-01 01:30:00  ', 'Max.   :2018-01-01 02:00:00  '],
      dtype='<U29')
robjs.r.summary(dti)
阵列(['分钟:2018-01-01 00:00:00','第一区:2018-01-01 00:30:00',
“中位数:2018-01-01 01:00:00”,“平均数:2018-01-01:00:00”,
“第三区:2018-01-01 01:30:00”,“最大值:2018-01-01 02:00:00”],

dtype='您是否尝试过将日期存储为字符串,然后将其转换回R中的datetime?您是否尝试过将日期存储为字符串,然后将其转换回R中的datetime?这似乎不是一个通用的解决方案,因为它使用不同的函数失败,例如
range
robjs.R.range(dti)
。这会导致错误“有趣的错误”(X[[i]],…):仅在包含所有数值变量的数据帧上定义“这似乎不是一个通用的解决方案,因为它使用不同的函数失败,例如
范围
robjs.r.range(dti)
。这会导致错误“error in FUN(X[[i]],…):仅在包含所有数值变量的数据帧上定义”