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')
当我尝试计算日期系列与今天之间的差异时,出现 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')