文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python Pandas读取Excel日期数据的异常处理怎么办

2023-06-29 08:00

关注

小编给大家分享一下Python Pandas读取Excel日期数据的异常处理怎么办,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

异常描述

有时我们的Excel有一个调整过自定义格式的日期字段:

Python Pandas读取Excel日期数据的异常处理怎么办

当我们用pandas读取时却是这样的效果:

Python Pandas读取Excel日期数据的异常处理怎么办

不管如何指定参数都无效。

出现原因

没有使用系统内置的日期单元格格式,自定义格式没有对负数格式进行定义,pandas读取时无法识别出是日期格式,而是读取出单元格实际存储的数值。

Python Pandas读取Excel日期数据的异常处理怎么办

解决方案:修改自定义格式

可以修改为系统内置的自定义格式:

Python Pandas读取Excel日期数据的异常处理怎么办

或者在自定义格式上补充负数的定义:

Python Pandas读取Excel日期数据的异常处理怎么办

增加;@即可

pandas直接解析Excel数值为日期

有时这种Excel很多,我们需要通过pandas批量读取,挨个人工修改Excel的自定义格式费时费力,下面我演示如何使用pandas直接解析这些数值成为日期格式。

excel中常规格式和日期格式的转换规则如下:

1900/1/1为起始日期,转换的数字是1,往后的每一天增加1

1900/1/2转换为数字是 2

1900/1/3转换为数字是 3

1900/1/4转换为数字是 4

以此类推

excel中时间转换规则如下:

在时间中的规则是把1天转换为数字是 1

每1小时就是 1/24

每1分钟就是 1/(24×60)=1/1440

每1秒钟就是 1/(24×60×60)=1/86400

根据Excel的日期存储规则,我们只需要以1900/1/1为基准日期,根据数值n偏移n-1天即可得到实际日期。不过还有个问题,Excel多存储了1900年2月29日这一天,而正常的日历是没有这一天的,而我们的日期又都是大于1900年的,所以应该偏移n-2天,干脆使用1899年12月30日作为基准,这样不需要作减法操作。

解析代码如下:

import pandas as pdfrom pandas.tseries.offsets import Daydf = pd.read_excel("日期.xlsx")basetime = pd.to_datetime("1899/12/30")df.日期 = df.日期.apply(lambda x: basetime+Day(x))df.日期 = df.日期.apply(lambda x: f"{x.month}月{x.day}日")df.head()
 日期
06月8日
16月9日
26月10日
36月11日
46月12日

如果需要调用time的strftime方法,由于包含中文则需要设置locale:

import pandas as pdfrom pandas.tseries.offsets import Dayimport localelocale.setlocale(locale.LC_CTYPE, 'chinese')df = pd.read_excel("日期.xlsx")basetime = pd.to_datetime("1899/12/30")df.日期 = df.日期.apply(lambda x: basetime+Day(x))df.日期 = df.日期.dt.strftime('%Y年%m月%d日')df.head()
 日期
02021年06月08日
12021年06月09日
22021年06月10日
32021年06月11日
42021年06月12日

看完了这篇文章,相信你对“Python Pandas读取Excel日期数据的异常处理怎么办”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网行业资讯频道,感谢各位的阅读!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯