Pandas 时间差异:时间戳减法必须具有相同的时区或没有时区

Pandas time diff: Timestamp subtraction must have the same timezones or no timezones

当我尝试计算日期系列与今天之间的差异时,出现 Timestamp subtraction must have the same timezones or no timezones 错误。

正在加载数据

raw_data = pd.read_json('resultados_finales_completos10000.json')
print(raw_data['fecha_publicacion'][0])

2017-09-24T15:04:22.000Z

将对象类型列转为日期时间

raw_data['fecha_publicacion'] =  pd.to_datetime(raw_data['fecha_publicacion'])
print(raw_data['fecha_publicacion'][0])
print(raw_data['fecha_publicacion'][0].tzinfo, type(today.tzinfo))

2017-09-24 15:04:22+00:00

UTC <class 'datetime.timezone'>

然后我设置今天的值

today = datetime.now(tz=timezone.utc)
print(today)
print(today.tzinfo, type(today.tzinfo))

2021-08-13 21:31:16.031605+00:00

UTC <class 'datetime.timezone'>

在这两种情况下,我都有相同的时区设置。

最后我尝试创建一个新列来存储时差,如下所示并得到上述错误。

raw_data['meses_venta'] = today - raw_data['fecha_publicacion']

我尝试了以下帖子,但收效甚微。欢迎任何线索。提前致谢!

您必须设置与错误提示相同的时区或(无时区)。

一种方法:

from datetime import datetime, timezone
import pandas as pd
x = pd.to_datetime('2017-09-24T15:04:22.000Z')
today = datetime.now(tz=x.tz)

today - x # Timedelta('1419 days 06:59:48.134906')