首页 > 解决方案 > 从 Python 中的 R Tibble 浮动的日期

问题描述

通过使用 API,我在 Python(使用 rpy2.objects)中检索了一个 Tibble(一个 R 对象),这是一个非常大的二维表。当我打印 Tibble 对象时,它包含一个日期格式为“YYYY-MM-DD”的列。当我在 Python 中获取日期时(只需通过索引 Tibble),它将转换为 5 位浮点数。例如,日期“2019-09-28”转换为浮点数 18167.0。我不确定如何将其转换回字符串日期(例如“YYYY-MM-DD”)。

有没有人有任何想法?我很乐意澄清我能做的任何事情:)

编辑:我在帮助下发现的答案如下

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

标签: pythonrdatetibble

解决方案


如果Date类转换为numeric存储模式,我们可以使用as.Datewithorigin

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'

推荐阅读