convert a SAS datetime in Pandas(在 Pandas 中转换 SAS 日期时间)
问题描述
我正在使用 Pandas 通过 read_sas
SAS 数据集中有一个 datetime 变量,在 Pandas 中显示为:
There is a datetime variable in the SAS dataset, which appears in Pandas as:
1.775376e+09
将其转换为 str
后,日期为:
Once I convert it to str
the date is:
1775376002.0
SAS 中的相应日期(不在我的 Pandas 数据集中)似乎是 DATETIME21.2
The corresponding date in SAS (not in my Pandas dataset) appears to be a DATETIME21.2
04APR2016:08:00:02.00
我尝试使用转换它
pd.to_datetime(df.mysasdate,format='%d%m%Y%H%M%S')
没有成功
TypeError: 'float' object is unsliceable
有什么想法吗?谢谢!
推荐答案
SAS 日期值
是一个值,表示从 1960 年 1 月 1 日到指定日期之间的天数.链接
is a value that represents the number of days between January 1, 1960, and a specified date. link
所以你可以转换数字 to_timedelta代码> 并添加
date
1960-01-01 00:00:00
So you can convert number to_timedelta
and add date
1960-01-01 00:00:00
df = pd.DataFrame({'mysasdate':[1775376002.0, 1775377002.0]})
print (df)
mysasdate
0 1.775376e+09
1 1.775377e+09
print (pd.to_timedelta(df['mysasdate'], unit='s') + pd.datetime(1960, 1, 1))
0 2016-04-04 08:00:02
1 2016-04-04 08:16:42
Name: mysasdate, dtype: datetime64[ns]
这篇关于在 Pandas 中转换 SAS 日期时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 Pandas 中转换 SAS 日期时间


- ";find_element_by_name(';name';)";和&QOOT;FIND_ELEMENT(BY NAME,';NAME';)";之间有什么区别? 2022-01-01
- CTR 中的 AES 如何用于 Python 和 PyCrypto? 2022-01-01
- 如何使用PYSPARK从Spark获得批次行 2022-01-01
- 使用 Cython 将 Python 链接到共享库 2022-01-01
- 计算测试数量的Python单元测试 2022-01-01
- 我如何卸载 PyTorch? 2022-01-01
- 检查具有纬度和经度的地理点是否在 shapefile 中 2022-01-01
- 我如何透明地重定向一个Python导入? 2022-01-01
- 使用公司代理使Python3.x Slack(松弛客户端) 2022-01-01
- YouTube API v3 返回截断的观看记录 2022-01-01