Pandas datetime64[ns]系列的rpy2错误
如何将datetime64[ns]数据从rpy2传递到R?下面是一个简单的例子: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.
将熊猫作为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]],…):仅在包含所有数值变量的数据帧上定义”