Python 将具有多个时区的datetime列转换为历元时间戳
我有一个带有多个时区的datetime列,我想将其转换为历元时间戳: pd.数据帧['2020-09-29 09:30:00-04:00','2020-09-29 10:30:00-04:00','2020-09-29 11:00:00-05:00',列=['datetime'] 预期结果如下所示:Python 将具有多个时区的datetime列转换为历元时间戳,python,pandas,datetime,Python,Pandas,Datetime,我有一个带有多个时区的datetime列,我想将其转换为历元时间戳: pd.数据帧['2020-09-29 09:30:00-04:00','2020-09-29 10:30:00-04:00','2020-09-29 11:00:00-05:00',列=['datetime'] 预期结果如下所示: datetime timestamp 0 2020-09-29 09:30:00-04:00 1601386200 1 2020-09-29 10:
datetime timestamp
0 2020-09-29 09:30:00-04:00 1601386200
1 2020-09-29 10:30:00-04:00 1601389800
2 2020-09-29 11:00:00-05:00 1601395200
注2020-09-29 11:00:00有一个-05:00 tz
我试过:
df['timestamp']=pd.to_datetimedf['datetime'].astypeint//10**9
如果datetime只有一个时区信息,但抛出的int参数必须是字符串、类似字节的对象或数字,而不是“datetime.datetime”错误(当时区信息不同时),并且我不确定Pandas为什么无法识别这一错误,那么它可以很好地工作
我想人们可能会问类似的问题,但找不到确切的答案。有什么想法吗?谢谢 您有混合时区,因此您希望将utc=True传递给\u datetime: 输出:
0 1601386200
1 1601389800
2 1601395200
Name: datetime, dtype: int64
您有混合时区,因此希望将utc=True传递给\u datetime: 输出:
0 1601386200
1 1601389800
2 1601395200
Name: datetime, dtype: int64
使用pd.时间戳:
使用pd.时间戳:
df['timestamp'] = df['datetime'].apply(lambda x: int(pd.Timestamp(x).timestamp()))
df
datetime timestamp
0 2020-09-29 09:30:00-04:00 1601386200
1 2020-09-29 10:30:00-04:00 1601389800
2 2020-09-29 11:00:00-05:00 1601395200