接着是这里的问题:
我正在尝试使用Rpy2在此处手动创建系列
import rpy2.robjects as ro
from rpy2.robjects.packages import importr
import pandas.rpy.common as com
pa = importr("pa")
ro.r("data(jan)")
jan = com.load_data('jan')
jan_r = com.convert_to_r_dataframe(jan)
name = ro.StrVector([str(i) for i in jan['name']])
sector = ro.StrVector([str(i) for i in jan['sector']])
date = ro.StrVector([str(i) for i in jan['date']])
并且我在表示14610
的日期字段中获得2010-01-01
的日期编号,我怀疑它是1970-01-01
的来源。我在datetime
模块中找不到任何可以更改日期来源的内容,因此我不知道如何重设日期。
我的问题:
1970-01-01
的来源吗?datetime.datetime
对象设置原点和隐蔽?谢谢
R来源日期
1970-01-01
的来源吗?
来自?Date
:
日期表示为自1970-01-01以来的天数,早期日期为负值。
我在表示2010-01-01的日期字段中获得14610的日期号,我怀疑它是1970-01-01的起源。
非常怀疑。
?Date
是否可以在python中为datetime.datetime对象设置起点和秘密?
Python as.Date(14610, origin = "1970-01-01")
## [1] "2010-01-01"
显示了构造日期的几种方法。
您可以使用datetime docs语法,其中可以使用datetime.date(year, month, day)
,year(x)
和month(x)
从R日期中检索这些值,其中mday(x)
代表您的日期向量。
您可以使用x
语法,其中可以使用date.fromtimestamp(timestamp)
从R个日期中检索时间戳。
format(x)
文档返回:
对应于公历的日期,其中第一年的1月1日具有序数1
因此,大概您的问题是,您将日期传递为数字,R将其计算为从1970年1月1日开始的天,而python假定是从0001年1月1日开始。
确定,但是如何在python中正确表达此数字?
date.fromordinal(ordinal)
18402对应于2020-05-20。参数origin是默认值,因此可以跳过它。