在 Pandas 中解析带有 JSON 时差的 DateTime
Posted
技术标签:
【中文标题】在 Pandas 中解析带有 JSON 时差的 DateTime【英文标题】:Parsing DateTime with Time Difference for JSON in Pandas 【发布时间】:2021-05-10 15:28:35 【问题描述】:我在 Pandas 中从 JSON 文件中读取了以下日期时间
datetime
0 2021-02-04 09:15:00+05:30
1 2021-02-04 09:16:00+05:30
2 2021-02-04 09:17:00+05:30
3 2021-02-04 09:18:00+05:30
4 2021-02-04 09:19:00+05:30
我尝试使用以下 sn-p 来解析日期时间,但没有任何区别。
data = pd.read_json ('dataset.json', convert_dates=['datetime'])
这是我的预期输出
datetime
0 2021-02-04 14:45:00
1 2021-02-04 14:46:00
2 2021-02-04 14:47:00
3 2021-02-04 14:48:00
4 2021-02-04 14:49:00
请指教。
【问题讨论】:
请注意,2021-02-04 09:15:00+05:30
表示当地时间 9:15,比 UTC 晚 5:30 小时。将其转换为 14:45 意味着您想再次添加 UTC 偏移量 - 老实说,这对我来说没有多大意义。
【参考方案1】:
您可以将 UTC 偏移量作为时间增量添加到现有日期时间,本地化为无:
df['localtime'] = pd.Timedelta(minutes=df['datetime'].dt.tz._minutes) + df['datetime'].dt.tz_localize(None)
df
datetime localtime
0 2021-02-04 09:15:00+05:30 2021-02-04 14:45:00
1 2021-02-04 09:16:00+05:30 2021-02-04 14:46:00
2 2021-02-04 09:17:00+05:30 2021-02-04 14:47:00
3 2021-02-04 09:18:00+05:30 2021-02-04 14:48:00
4 2021-02-04 09:19:00+05:30 2021-02-04 14:49:00
另见Convert pandas timezone-aware DateTimeIndex to naive timestamp, but in certain timezone。
【讨论】:
tz._minutes
似乎有问题
@Luke ...那会是什么? ^^以上是关于在 Pandas 中解析带有 JSON 时差的 DateTime的主要内容,如果未能解决你的问题,请参考以下文章
解析嵌套的 JSON 并迭代到 Pandas Dataframe
用正确的 Dtype 将带有无意义键的 json 读入 pandas data.frame
将带有嵌套字典的json响应转换为pandas数据框[重复]
Pandas - 合并具有时差的行(当 datetime 为索引时)