python - Panda read_excel() 给出的日期值不正确
问题描述
我有列名为“报告日期”的 abc.xlsb 文件。它的值为“21 年 8 月 16 日”。我正在尝试将 abc.xlsb 转换为 CSV 文件。但我得到日期“44424”的随机值
import pandas as pd
xls = pd.ExcelFile('abc.xlsb')
df = pd.read_excel(xls, 'xyz_sheetname')
print(df['Reporting Date'])
输出 :
44424
预期输出:
16-Aug-21
请帮忙。提前致谢。
解决方案
44424 表示自 1899 年 12 月 31 日以来经过的天数
例如:
1 = 31 Dec 1899
2 = 1 Jan 1900
3 = 2 Jan 1900
因此,44424 正好是 2021 年 8 月 16 日,正如预期的那样。
在导出到 csv 之前,您可以在 pandas 上使用此逻辑来获取实际日期。
您可能想检查一下:https ://www.ablebits.com/office-addins-blog/2019/08/13/google-sheets-change-date-format/
这应该有效:
from datetime import datetime, timedelta
import pandas as pd
df = pd.DataFrame({"date": [1,2,3,4, 44424]})
df['date'] = df['date'].apply(lambda x: timedelta(x) + datetime(1899,12,30))
print(df)
推荐阅读
- sql - SQL左联接,其中联接表仅显示具有最低数字的行列
- selenium - Selenium 范围报告没有正确显示多字节字符,它显示为?标记
- javascript - Javascript:如何将某些特定键分配给另一个对象?
- c# - 如何从数据库中获取数据到表中(Angular 8、C#、WebApi)
- c# - 如何从 C# 项目中删除 WPF 窗口
- ios - Flutter - Codemagic - IOS构建失败
- android - 使用开发人员文档中描述的以下模式有什么好处
- python-3.x - 试图在 postgreSQL 的表中插入数据。一切正常,没有错误,但实际表中没有可见的行
- amazon-web-services - 过滤规则或桶规则哪个优先级更高?
- python - 在python中将数据从column1替换到另一个column 2