gpt4 book ai didi

python - Pandas DatetimeIndex 将日期转换为 1970

转载 作者:太空宇宙 更新时间:2023-11-04 03:09:39 25 4
gpt4 key购买 nike

我最近遇到了一个类似的问题 ( answered here ),将日期转换为 pandas DatetimeIndex随后使用这些日期的 groupby 导致错误,其中日期显示为 1970-01-01 00:00:00+00:00

我现在在不同的环境中遇到这个问题,之前的解决方案对我没有帮助。

我有一个这样的框架

import pandas as pd
from dateutil import tz

data = { 'Events' : range(1, 5 + 1 ,1), 'ID' : [1, 1, 1, 1, 1]}
idx = pd.date_range(start='2008-01-01', end='2008-01-05', freq='D', tz=tz.tzlocal())
frame = pd.DataFrame(data, index=idx)



Events ID
2008-01-01 00:00:00+00:00 1 1
2008-01-02 00:00:00+00:00 2 1
2008-01-03 00:00:00+00:00 3 1
2008-01-04 00:00:00+00:00 4 1
2008-01-05 00:00:00+00:00 5 1

我想将索引从日期更改为 MultiIndex [date, ID],但这样做会出现“1970 bug”

frame.set_index([frame.ID, frame.index])

Events ID
ID
1 2008-01-01 00:00:00+00:00 1 1
1970-01-01 00:00:00+00:00 2 1
1970-01-01 00:00:00+00:00 3 1
1970-01-01 00:00:00+00:00 4 1
1970-01-01 00:00:00+00:00 5 1

版本

  • python 2.7.11
  • Pandas 0.18.0

最佳答案

你的其他问题的公认答案对我有用(Python 3.5.2,Pandas 0.18.1):

print(frame.set_index([frame.ID, frame.index]))

# Events ID
# ID
# 1 2008-01-01 00:00:00-05:00 1 1
# 1970-01-01 00:00:00-05:00 2 1
# 1970-01-01 00:00:00-05:00 3 1
# 1970-01-01 00:00:00-05:00 4 1
# 1970-01-01 00:00:00-05:00 5 1

frame.index = frame.index.tz_convert(tz='EST')
print(frame.set_index([frame.ID, frame.index]))

# Events ID
# ID
# 1 2008-01-01 00:00:00-05:00 1 1
# 2008-01-02 00:00:00-05:00 2 1
# 2008-01-03 00:00:00-05:00 3 1
# 2008-01-04 00:00:00-05:00 4 1
# 2008-01-05 00:00:00-05:00 5 1

(我的本地时间和你的不一样。)

关于python - Pandas DatetimeIndex 将日期转换为 1970,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38484277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com