当前位置: 首页 > 面试题库 >

pandas to_datetime解析错误的年份

孙莫希
2023-03-14
问题内容

我遇到的事情几乎可以肯定是我自己的一个愚蠢的错误,但是我似乎无法弄清楚发生了什么。

本质上,我有一系列日期"%d-%b-%y",例如格式的字符串26-Sep-05。当我将其转换为日期时间时,年份有时是正确的,但有时并非如此。

例如:

dates = ['26-Sep-05', '26-Sep-05', '15-Jun-70', '5-Dec-94', '9-Jan-61', '8-Feb-55']

pd.to_datetime(dates, format="%d-%b-%y")
DatetimeIndex(['2005-09-26', '2005-09-26', '1970-06-15', '1994-12-05',
               '2061-01-09', '2055-02-08'],
              dtype='datetime64[ns]', freq=None)

最后两个条目错误,这些年份返回的年份分别为2061和2055。但这对于15-Jun-70入门来说效果很好。这里发生了什么?


问题答案:

这似乎是Python库datetime的行为,我做了一个测试,以了解临界点在68-69之间:

datetime.datetime.strptime('31-Dec-68', '%d-%b-%y').date()
>>> datetime.date(2068, 12, 31)

datetime.datetime.strptime('1-Jan-69', '%d-%b-%y').date()
>>> datetime.date(1969, 1, 1)

两位数年份歧义

因此,%y年低于69的任何事物似乎都可以归因于2000年,而69以后的年份等于1900

%y两位数只能去0099这将是不明确的,如果我们开始穿越百年。

如果没有重叠,则可以手动处理它并注释世纪(消除歧义)

我建议您手动处理数据并指定世纪,例如,您可以确定数据中年份介于17到68之间的任何内容都归因于1917年-1968年(而不是2017年-2068年)。

如果您有重叠,则无法处理年份不足的信息,除非您有一些有序的数据和参考

如果您有重叠,例如,您同时拥有2016年和1916年的数据,并且都记录为“
16”,则这是模棱两可的,并且没有足够的信息来对此进行解析,除非按日期对数据进行排序,在这种情况下,您可以使用启发式方法在解析时切换世纪。



 类似资料:
  • 问题内容: 哪里是。 当我执行以上操作时,时间变成 我在做错什么?这是一个错误吗?我希望它是2013年的第一周,而不是最后一周。 问题答案: 看这里。 该weekyear,模式字母的,周是为了与使用,weekyear。从javadoc的 将模式更改为 然后您将解析为 根据您的情况,2013年的第一周始于2012年。

  • 我正在阅读数据从我的学院网站(html)使用jsoup显示结构化数据在android应用程序。 html代码是

  • 问题内容: 我知道这个问题经常被问到,但是找不到合适的解决方案。使用时 要么 我总是会遇到以下错误: 人们建议打开并重试。但这并没有太大帮助。 我也有装的罐子: 问题答案: 从Apache POI常见问题解答: 我可以混合不同版本的POI罐子吗? 否。不支持此功能。 所有使用中的POI罐子必须来自同一版本。不支持诸如poi-3.11.jar和poi- ooxml-3.9.jar之类的组合,它们将无

  • 问题内容: 尝试对mongoexport使用查询会导致错误。但是mongo-client会评估相同的查询,而不会出错。 在mongo-client中: 使用mongoexport: 产生的错误: 但是预先在mongoexport中进行乘法: 作品! 为什么mongo在这两种情况下对查询的评估不同? 问题答案: 该命令行实用程序支持传递查询 JSON 格式,但您要评估 的JavaScript 在您的

  • 问题内容: 当我尝试从http://api-v3.deezer.com/1.0/search/album/?q=beethoven&index=2&nb_items=2&output=json使用以下方法获取JSON 时: 我得到: 但是使用http://search.twitter.com/search.json?q=beethoven&callback=?&count=5的JSON 可以正常工

  • 我在日志中收到以下错误消息: 第32行example.php是: 我重新启动了php5-fpm(我使用的是PHP 5.3)、nginx和Ubuntu服务器本身,但运气不好。知道是怎么回事吗?谢谢!