datetime64[ns] pandas 系列出现 rpy2 错误
rpy2 error with datetime64[ns] pandas series
如何将 datetime64[ns] 数据从 rpy2 传递给 R?以下简单案例:
import pandas as pd
import rpy2.robjects as robjs
from rpy2.robjects import pandas2ri
pandas2ri.activate()
dti = pd.date_range('2018-01-01', periods=3, freq='H')
robjs.r.summary(dti)
失败并出现 ValueError:ValueError: Unknown numpy array type "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')
如何将 datetime64[ns] 数据从 rpy2 传递给 R?以下简单案例:
import pandas as pd
import rpy2.robjects as robjs
from rpy2.robjects import pandas2ri
pandas2ri.activate()
dti = pd.date_range('2018-01-01', periods=3, freq='H')
robjs.r.summary(dti)
失败并出现 ValueError:ValueError: Unknown numpy array type "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')