减去两个熊猫时区感知时间戳会导致TypeError

时间:2020-03-23 17:05:50

标签: python pandas datetime

我有两个时区感知的熊猫datetime时间戳。当我减去它们时,我得到了错误:

TypeError: Timestamp subtraction must have the same timezones or no timezones

第一个是从转换为熊猫日期时间:

start_time = pd.to_datetime(dt.datetime(2019, 6, 28, 0, 52, 57, tzinfo=dt.timezone.utc))

第二个来自DataFrame索引,如下所示:

>> phase_df.index[0]
Timestamp('2019-06-28 00:52:30.000130+0000', tz='UTC')

要确认它们的类型相同:

>> type(phase_df.index[0]), type(start_time)
(pandas._libs.tslibs.timestamps.Timestamp,
 pandas._libs.tslibs.timestamps.Timestamp)

1 个答案:

答案 0 :(得分:1)

似乎唯一可以找到的解决方案是在减法之前删除所有时区信息。

start_time = pd.to_datetime(dt.datetime(2019, 6, 28, 0, 52, 57, tzinfo=dt.timezone.utc)).tz_localize(None)

other_time = phase_df.index.tz_localize(None)

start_time - other_time

没有错误。但是它确实应该能够与时区一起工作。必须是一个错误。