Я пытаюсь преобразовать кадр данных python в r с помощью rpy2, и я не могу получить дату в кадре данных python для преобразования в тип даты в кадрах данных r.
При преобразовании pd.to_datetime()
to r dataframe Я не получаю правильного преобразования.
рассматриваемые столбцы даты df:
event_time
0 2019-10-11
1 2020-01-01
2 2019-11-15
3 2020-03-05
Код преобразования:
with localconverter(ro.default_converter + pandas2ri.converter):
df['event_time'] = pd.to_datetime(df['event_time']).dt.strftime("%Y-%m-%d")
df["event_time"] = pd.to_datetime(df["event_time"]).dt.date
r_df = ro.conversion.py2rpy(df)
Производит:
event_time: <class 'numpy.ndarray'>
array([737343., 737425., 737378., 737489.])
То же самое и для времени разряда.
Код преобразования со строкой, а затем попытка преобразования:
with localconverter(ro.default_converter + pandas2ri.converter):
df['event_time'] = pd.to_datetime(df['event_time']).dt.strftime("%Y-%m-%d")
#### df["event_time"] = pd.to_datetime(df["event_time"]).dt.date
r_df = ro.conversion.py2rpy(df)
r_df = base.cbind(r_df, event_time = base.as_Date(r_df[r_df.names.index('event_time')], '%Y-%m-%d'))
Создает фрейм данных с:
event_time: <class 'numpy.ndarray'>
array(['2019-10-11', '2020-01-01', '2019-11-15', '2020-03-05'], dtype='<U10')
Но эта строка кода r_df = base.cbind(r_df, event_time = base.as_Date(r_df[r_df.names.index('event_time')], '%Y-%m-%d'))
ошибки с:
AttributeError: объект 'numpy .ndarray' не имеет атрибута 'index'
Использование этого кода создает:
with localconverter(ro.default_converter + pandas2ri.converter):
df['event_time'] = pd.to_datetime(df['event_time']).dt.strftime("%Y-%m-%d")
#### df["event_time"] = pd.to_datetime(df["event_time"]).dt.date
r_df = ro.conversion.py2rpy(df)
r_df = base.cbind(r_df, event_time = base.as_Date(r_df[r_df.rx2('event_time')], '%Y-%m-%d'))
Ошибка:
Преобразование py2rpy не определено для объектов типа ' '
Итак, как мне получить дату из фрейма данных python в дату в r с помощью rpy2? Мне он нужен в формате даты, потому что позже я буду выполнять расчеты даты, и строки не будут работать.
Версии:
pandas == 1.0.1
rpy2 ~ = 3,3,5