无法从 SPSS (.sav) 文件中读取 Python 中的日期变量



我正在使用Python中的.sav(SPSS(文件。除了日期时间变量外,在使用PyriadStat(也在使用Pandas时(导入后,所有变量看起来都很好。它们使用Python以浮点类型的指数形式读取。但他们最初的SPSS格式是日期类型的dd-mmm-yy(例如,2021年2月2日(。

这就是日期变量看起来像的样子

1.383160e+10

有没有办法使用Python将这种格式转换为日期时间?

我已经尝试了使用日期时间模块和时间模块的各种方法。但我得到的是2408 的日期

# Here I'm using the float from the first row in the dataframe  
time.gmtime(13831603200)

结果

time.struct_time(tm_year=2408,tm_mon=4,tm_mday=22,tm_hour=0,tm_min=0,tm_sec=0,tm_wday=1,tm_yday=113,tm_isdst=0(

当我使用日期时间模块时:

python_date = datetime.fromtimestamp(13831603200).strftime('%d-%b-%Y, %H:%M:%S')
print(python_date)

2008年4月22日00:00:00

[使用Python时日期时间变量(Vdatesub(的显示方式][1][1] :https://i.stack.imgur.com/I7yza.png

这是在这两篇文章(一篇Python,一篇R(下回答的:

转换';自1582年10月14日以来的秒;到Python日期时间

将SPSS文件读取到R中,日期的数据格式错误,并生成更多变量

简而言之:日期存储为1582年10月14日起的秒数,而Python从大纪元日期(1970年1月1日(开始。

您需要计算1582-10-14和1970-01-01之间的秒数,以根据以下帖子调整时间戳值:

平台localtime((/gmtime((函数的时间戳超出范围

(可能为12218515200秒(

最新更新