Дата, чтобы плавать от R Tibble в Python - PullRequest
2 голосов
/ 08 марта 2020

Используя API, я получил Tibble (объект R) в Python (используя rpy2.objects), который является очень большой двумерной таблицей. Он содержит столбец с датами в формате «ГГГГ-ММ-ДД», когда я печатаю объект Tibble. Когда я беру дату в Python (просто путем индексации Tibble), она конвертируется в число с плавающей запятой 5 di git. Например, дата «2019-09-28» конвертируется в число с плавающей точкой 18167.0. Я не уверен, как преобразовать его обратно в строковую дату (например, «ГГГГ-ММ-ДД»).

У кого-нибудь есть идеи? Я рад разъяснить все, что могу:)

Редактировать: Ответ, который я обнаружил с помощью, был следующим

import pandas as pd
pd.to_datetime(18167.0,unit='d',origin='1970-01-01')

1 Ответ

1 голос
/ 08 марта 2020

Если класс Date преобразован в режим хранения numeric, мы можем использовать as.Date с origin

as.Date(18167, origin = "1970-01-01")
#[1] "2019-09-28"

Режим хранения Date равен numeric

storage.mode(Sys.Date())
#[1] "double"

В python мы также можем сделать

from datetime import datetime, date, time
date.fromordinal(int(18167) + date(1970, 1, 1).toordinal()).strftime("%Y-%m-%d")
#'2019-09-28'
...