首页 > 解决方案 > Excel二进制日期字段转换为numpy int64

问题描述

我有一个包含日期列的二进制 excel 文件,其值为“2020 年 7 月 31 日”。

读取文件后,DATE 值将转换为 numpy.int64,值为 44043。

你能告诉我如何停止这种转换或获取 excel 中给出的日期吗?

这是我读取excel文件的代码

>>df = pd.read_excel('hello.xlsb', engine='pyxlsb')
>>df[DATE][0]
>>44043

标签: pandasnumpy

解决方案


显然,整数值是自 1900 年 1 月 0 日以来的天数。但是 1 月 0 日不存在:这里似乎2涉及到一个捏造因素。

>>> import datetime
>>> d = datetime.date(1900, 1, 1) + datetime.timedelta(days=44043 - 2)
>>> d
datetime.date(2020, 7, 31)
>>> d.isoformat()
'2020-07-31'
>>> d.strftime("%m/%d/%Y")
'07/31/2020'

有关其他格式选项,请参阅strftime文档。


推荐阅读