如何解决完全迷失在使用 Pytz 和 Python 的时区问题
我目前正在使用 PANDAS 编写一份报告,该报告从 API 获取数据并为某些人设置格式。主要问题围绕着一个名为“状态日期”的专栏。此列从两个 API 字段中提取数据:一个在提交申请时显示,一个在申请被授予时显示。截至目前,我们只是在处理提交的奖学金,我编写的代码根据哪个字段为空来合并两个字段:
merged.loc[merged["Status Date"].isnull(),'Status Date'] = merged["Categorized At"]
这就完成了。但是,这两个 API 字段都使用 UTC+0000 硬编码。
这是一个问题,因为输出 UTC 偏移量是 -0600,而 API 输入的是 +0000。这会导致一个问题,即在 18:00:00 之后提交的任何奖学金(我们正在使用的数据)将被归类到第二天。例如:
Status Date
12/5/20
应该什么时候:
Status Date
12/4/20
为了解决这个问题,我使用 Pytz 编写了一个代码,将本列中的任何内容转换为 DateTime 对象并对其进行本地化:
merged['Status Date'] = pd.to_datetime(merged['Status Date'],errors='coerce')
merged['Status Date'] = merged['Status Date'].dt.tz_localize('UTC').dt.tz_convert('America/Chicago').dt.date
然而,这设法产生了新的问题。虽然在 18:00:00 之后分类的任何内容(如上面的示例)都已修复,但现在有些日期会拉动前一个日期。例如:
Status Date
1/4/21
应该
Status Date
1/5/21
我完全不知道如何解决这个问题。我不知道我的代码是否有任何重大问题,我们需要尽快修复。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。