我有一個包含 PDT 和 PST 日期時間值的 Pandas 列。例子:
| 太平洋時間/太平洋時間 |
|---|
| 2021-10-29 00:18:38 太平洋夏令時 |
| 2021-10-29 01:08:19 太平洋夏令時 |
| 2021-11-08 19:43:58 太平洋標準時間 |
| 2021-11-08 19:56:01 太平洋標準時間 |
我需要將這些轉換為 UTC 時區。例子:
| 世界標準時間 |
|---|
| 2021-10-29 07:18:00 |
一個簡單的答案表示贊賞。
uj5u.com熱心網友回復:
使用to_datetime帶有字串轉換通過向日期時間dateparser.parse:
import dateparser
df['PDT/PST'] = pd.to_datetime(df['PDT/PST'].apply(dateparser.parse), utc=True)
print (df)
PDT/PST
0 2021-10-29 07:18:38 00:00
1 2021-10-29 08:08:19 00:00
2 2021-11-09 03:43:58 00:00
3 2021-11-09 03:56:01 00:00
最后加Series.dt.tz_localize有None:
df['PDT/PST'] = (pd.to_datetime(df['PDT/PST'].apply(dateparser.parse), utc=True)
.dt.tz_localize(None))
print (df)
PDT/PST
0 2021-10-29 07:18:38
1 2021-10-29 08:08:19
2 2021-11-09 03:43:58
3 2021-11-09 03:56:01
替換PST和PDT到-7或的解決方案-8是:
df['PDT/PST'] = (pd.to_datetime(df['PDT/PST']
.replace({'PDT':'-07:00','PST':'-08:00'}, regex=True), utc=True)
.dt.tz_localize(None))
print (df)
PDT/PST
0 2021-10-29 07:18:38
1 2021-10-29 08:08:19
2 2021-11-09 03:43:58
3 2021-11-09 03:56:01
uj5u.com熱心網友回復:
另一種選擇:提供了 tzinfos 的 dateutil 決議器;然后轉換為UTC。
import dateutil
pacific_tz = dateutil.tz.gettz("US/Pacific")
df['UTC'] = df['PDT/PST'].apply(dateutil.parser.parse,
tzinfos={'PST': pacific_tz,
'PDT': pacific_tz}).dt.tz_convert('UTC')
df['UTC']
0 2021-10-29 07:18:38 00:00
1 2021-10-29 08:08:19 00:00
2 2021-11-09 03:43:58 00:00
3 2021-11-09 03:56:01 00:00
Name: UTC, dtype: datetime64[ns, UTC]
相關:Python strptime() 和時區?
現在,如果需要,您可以使用某種格式格式化為字串,例如
df['UTC'].dt.strftime('%Y-%m-%d %H:%M:%S')
0 2021-10-29 07:18:38
1 2021-10-29 08:08:19
2 2021-11-09 03:43:58
3 2021-11-09 03:56:01
Name: UTC, dtype: object
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/372458.html
標籤:Python 蟒蛇-3.x 熊猫 jupyter-笔记本
上一篇:SVG影片到路徑
下一篇:Swing:不能繪制矩形
