Python 将具有多个时区的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列,我想将其转换为历元时间戳:

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: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