如何使用 pandas 分隔日期、小时和时区信息?

How to separate the date, hour and timezone info using pandas?

我很好奇如何使用 pandas 处理 .csv 文件中的此类信息:

2022-08-11 11:50:01 America/Los_Angeles

我的目标是提取日期、小时和分钟以及时区信息以供进一步分析。

我尝试使用以下方法提取日期和时间: df['Date'] = pd.to_datetime(df['datetime']).dt.date

但由于最后的字符串而出错。除了使用特定索引提取日期和时间之外,还有更好更快的方法吗?非常感谢。

pandas 无法处理具有不同时区的日期时间列。您可以首先将 datetimetimezone 拆分为单独的列:

df[['datetime', 'timezone']] = df['datetime'].str.rsplit(' ', n=1, expand=True)
df['datetime'] = pd.to_datetime(df['datetime']) # this column now has the datetime64[ns] type

现在您可以执行以下操作:

df['date_only'] = df['datetime'].dt.date

如果要在America/Los_Angeles时间表达所有本地date/times:

df['LA_datetime'] = df.apply(lambda x: x['datetime'].tz_localize(tz=x['timezone']).tz_convert('America/Los_Angeles'), axis = 1)

您可以将 America/Los_Angeles 更改为您喜欢的时区。