将时区分配给 Dataframe 日期时间列
Assign a TimeZone to Dataframe Datetime Column
我不知道如何为数据帧分配时区。我有一个名为 'df' 的 df,它看起来像这样:
df
Out[67]:
date daily_flow
0 2002-02-13 144000.0
1 2002-02-14 184000.0
2 2002-02-15 159000.0
3 2002-02-16 126000.0
4 2002-02-17 114000.0
... ...
7277 2022-02-02 152000.0
7278 2022-02-03 159000.0
7279 2022-02-04 150000.0
7280 2022-02-05 165000.0
7281 2022-02-06 148000.0
[7282 rows x 2 columns]
df.dtypes
Out[68]:
date datetime64[ns]
daily_flow float64
dtype: object
我已阅读文档和其他帖子,但不清楚如何将“日期”列分配给 'US/Pacific' 等时区。谢谢!
这是一个错误示例,当我尝试将时区 (UTC) 分配给索引位置 ('date') 中的日期时间列时,我不断遇到错误。
df.date.tz_localize('UTC')
Traceback (most recent call last):
Input In [10] in <module>
df.tz_localize('UTC')
File ~\Anaconda3\envs\ARIMA\lib\site-packages\pandas\core\generic.py:9977 in tz_localize
ax = _tz_localize(ax, tz, ambiguous, nonexistent)
File ~\Anaconda3\envs\ARIMA\lib\site-packages\pandas\core\generic.py:9959 in _tz_localize
raise TypeError(
TypeError: index is not a valid DatetimeIndex or PeriodIndex
要为列设置时区,请解析 to_datetime and use the dt accessor of the Series to tz_localize。例如:
df
Out[3]:
date daily_flow
0 2002-02-13 144000.0
1 2002-02-14 184000.0
2 2002-02-15 159000.0
df['date'] = pd.to_datetime(df['date']).dt.tz_localize('UTC')
df['date']
Out[5]:
0 2002-02-13 00:00:00+00:00
1 2002-02-14 00:00:00+00:00
2 2002-02-15 00:00:00+00:00
Name: date, dtype: datetime64[ns, UTC]
在示例中,您可以将 'UTC' 替换为适当的时区。您也可以使用相同的方法 convert 到另一个时区 (.dt.tz_convert('your-time-zone')
)。
我不知道如何为数据帧分配时区。我有一个名为 'df' 的 df,它看起来像这样:
df
Out[67]:
date daily_flow
0 2002-02-13 144000.0
1 2002-02-14 184000.0
2 2002-02-15 159000.0
3 2002-02-16 126000.0
4 2002-02-17 114000.0
... ...
7277 2022-02-02 152000.0
7278 2022-02-03 159000.0
7279 2022-02-04 150000.0
7280 2022-02-05 165000.0
7281 2022-02-06 148000.0
[7282 rows x 2 columns]
df.dtypes
Out[68]:
date datetime64[ns]
daily_flow float64
dtype: object
我已阅读文档和其他帖子,但不清楚如何将“日期”列分配给 'US/Pacific' 等时区。谢谢!
这是一个错误示例,当我尝试将时区 (UTC) 分配给索引位置 ('date') 中的日期时间列时,我不断遇到错误。
df.date.tz_localize('UTC')
Traceback (most recent call last):
Input In [10] in <module>
df.tz_localize('UTC')
File ~\Anaconda3\envs\ARIMA\lib\site-packages\pandas\core\generic.py:9977 in tz_localize
ax = _tz_localize(ax, tz, ambiguous, nonexistent)
File ~\Anaconda3\envs\ARIMA\lib\site-packages\pandas\core\generic.py:9959 in _tz_localize
raise TypeError(
TypeError: index is not a valid DatetimeIndex or PeriodIndex
要为列设置时区,请解析 to_datetime and use the dt accessor of the Series to tz_localize。例如:
df
Out[3]:
date daily_flow
0 2002-02-13 144000.0
1 2002-02-14 184000.0
2 2002-02-15 159000.0
df['date'] = pd.to_datetime(df['date']).dt.tz_localize('UTC')
df['date']
Out[5]:
0 2002-02-13 00:00:00+00:00
1 2002-02-14 00:00:00+00:00
2 2002-02-15 00:00:00+00:00
Name: date, dtype: datetime64[ns, UTC]
在示例中,您可以将 'UTC' 替换为适当的时区。您也可以使用相同的方法 convert 到另一个时区 (.dt.tz_convert('your-time-zone')
)。