pandas - 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
解决方案
显然,整数值是自 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文档。
推荐阅读
- c# - 我有一个合作例程,一旦选择就会播放。但是,如果我再次选择它,则不会发生任何事情。但是它确实第一次起作用
- apache-camel - Camel FTP无法自动列出目录前面有“找不到文件”的目录
- typescript - Jest automock 未应用于模块
- swift - 斯威夫特 | 如何从用户那里获取开始时间和结束时间?
- java - 在 Kafka Connect 中添加新的自定义属性
- anylogic - 如何为一种代理类型设置一种预定义的布局模式?(最好通过代码)
- javascript - 如何在 Handlebars 中使用自定义字体?
- angular - Angular TimelineLite 时间函数不适用于 OnInit
- excel - 当这些数字是字符串和数字时比较数字
- ios - Angular Service Worker 不适用于 iOS 独立模式