从 Python 中的 R Tibble 浮动的日期
Date to float from an R Tibble in Python
通过使用 API,我在 Python(使用 rpy2.objects)中检索了一个 Tibble(R 对象),这是一个非常大的二维 table.当我打印 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')
如果 Date
class 转换为 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'
通过使用 API,我在 Python(使用 rpy2.objects)中检索了一个 Tibble(R 对象),这是一个非常大的二维 table.当我打印 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')
如果 Date
class 转换为 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'