![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4c91a3ddbdbf433ebf84cdb9f36d5cb6.png)
1. 导包
import numpy as np
import pandas as pd
2. 时间戳
2.1 时间创建
pd.Timestamp("2024-2-8")
Timestamp('2024-02-08 00:00:00')
pd.Period("2024-2-8",freq="D")
Period('2024-02-08', 'D')
index = pd.date_range("2024.02.08",periods=4,freq="D")
index
DatetimeIndex(['2024-02-08', '2024-02-09', '2024-02-10', '2024-02-11'], dtype='datetime64[ns]', freq='D')
index = pd.period_range("2024.02.08",periods=4,freq="D")
index
PeriodIndex(['2024-02-08', '2024-02-09', '2024-02-10', '2024-02-11'], dtype='period[D]')
pd.Series(np.random.randint(0,10,size=4),index=index)
2024-02-08 7
2024-02-09 4
2024-02-10 3
2024-02-11 7
Freq: D, dtype: int32
2.2 时间转换方法
pd.to_datetime(["2024.02.08","2024.02.09"])
DatetimeIndex(['2024-02-08', '2024-02-09'], dtype='datetime64[ns]', freq=None)
pd.to_datetime([1899678987],unit="s")
DatetimeIndex(['2030-03-14 00:36:27'], dtype='datetime64[ns]', freq=None)
dt = pd.to_datetime([1899678987000],unit="ms")
dt
DatetimeIndex(['2030-03-14 00:36:27'], dtype='datetime64[ns]', freq=None)
dt + pd.DateOffset(hours=8)
DatetimeIndex(['2030-03-14 08:36:27'], dtype='datetime64[ns]', freq=None)
dt + pd.DateOffset(days=8)
DatetimeIndex(['2030-03-22 00:36:27'], dtype='datetime64[ns]', freq=None)
dt - pd.DateOffset(days=8)
DatetimeIndex(['2030-03-06 00:36:27'], dtype='datetime64[ns]', freq=None)
dt + pd.DateOffset(days=-8)
DatetimeIndex(['2030-03-06 00:36:27'], dtype='datetime64[ns]', freq=None)
2.3 时间戳的索引和切片
index = pd.date_range("2024-2-8",periods=100,freq="D")
index
DatetimeIndex(['2024-02-08', '2024-02-09', '2024-02-10', '2024-02-11',
'2024-02-12', '2024-02-13', '2024-02-14', '2024-02-15',
'2024-02-16', '2024-02-17', '2024-02-18', '2024-02-19',
'2024-02-20', '2024-02-21', '2024-02-22', '2024-02-23',
'2024-02-24', '2024-02-25', '2024-02-26', '2024-02-27',
'2024-02-28', '2024-02-29', '2024-03-01', '2024-03-02',
'2024-03-03', '2024-03-04', '2024-03-05', '2024-03-06',
'2024-03-07', '2024-03-08', '2024-03-09', '2024-03-10',
'2024-03-11', '2024-03-12', '2024-03-13', '2024-03-14',
'2024-03-15', '2024-03-16', '2024-03-17', '2024-03-18',
'2024-03-19', '2024-03-20', '2024-03-21', '2024-03-22',
'2024-03-23', '2024-03-24', '2024-03-25', '2024-03-26',
'2024-03-27', '2024-03-28', '2024-03-29', '2024-03-30',
'2024-03-31', '2024-04-01', '2024-04-02', '2024-04-03',
'2024-04-04', '2024-04-05', '2024-04-06', '2024-04-07',
'2024-04-08', '2024-04-09', '2024-04-10', '2024-04-11',
'2024-04-12', '2024-04-13', '2024-04-14', '2024-04-15',
'2024-04-16', '2024-04-17', '2024-04-18', '2024-04-19',
'2024-04-20', '2024-04-21', '2024-04-22', '2024-04-23',
'2024-04-24', '2024-04-25', '2024-04-26', '2024-04-27',
'2024-04-28', '2024-04-29', '2024-04-30', '2024-05-01',
'2024-05-02', '2024-05-03', '2024-05-04', '2024-05-05',
'2024-05-06', '2024-05-07', '2024-05-08', '2024-05-09',
'2024-05-10', '2024-05-11', '2024-05-12', '2024-05-13',
'2024-05-14', '2024-05-15', '2024-05-16', '2024-05-17'],
dtype='datetime64[ns]', freq='D')
ts = pd.Series(range(len(index)),index=index)
ts
2024-02-08 0
2024-02-09 1
2024-02-10 2
2024-02-11 3
2024-02-12 4
..
2024-05-13 95
2024-05-14 96
2024-05-15 97
2024-05-16 98
2024-05-17 99
Freq: D, Length: 100, dtype: int64
ts["2024-02-09"]
1
ts["2024-02"]
2024-02-08 0
2024-02-09 1
2024-02-10 2
2024-02-11 3
2024-02-12 4
2024-02-13 5
2024-02-14 6
2024-02-15 7
2024-02-16 8
2024-02-17 9
2024-02-18 10
2024-02-19 11
2024-02-20 12
2024-02-21 13
2024-02-22 14
2024-02-23 15
2024-02-24 16
2024-02-25 17
2024-02-26 18
2024-02-27 19
2024-02-28 20
2024-02-29 21
Freq: D, dtype: int64
ts["2024-02-15":"2024-02-22"]
2024-02-15 7
2024-02-16 8
2024-02-17 9
2024-02-18 10
2024-02-19 11
2024-02-20 12
2024-02-21 13
2024-02-22 14
Freq: D, dtype: int64
ts[pd.Timestamp("2024-02-22")]
14
ts[pd.Timestamp("2024-02-15"):pd.Timestamp("2024-02-22")]
2024-02-15 7
2024-02-16 8
2024-02-17 9
2024-02-18 10
2024-02-19 11
2024-02-20 12
2024-02-21 13
2024-02-22 14
Freq: D, dtype: int64
ts[pd.date_range("2024-02-15",periods=10,freq="D")]
2024-02-15 7
2024-02-16 8
2024-02-17 9
2024-02-18 10
2024-02-19 11
2024-02-20 12
2024-02-21 13
2024-02-22 14
2024-02-23 15
2024-02-24 16
Freq: D, dtype: int64
2.4 属性
ts.index
DatetimeIndex(['2024-02-08', '2024-02-09', '2024-02-10', '2024-02-11',
'2024-02-12', '2024-02-13', '2024-02-14', '2024-02-15',
'2024-02-16', '2024-02-17', '2024-02-18', '2024-02-19',
'2024-02-20', '2024-02-21', '2024-02-22', '2024-02-23',
'2024-02-24', '2024-02-25', '2024-02-26', '2024-02-27',
'2024-02-28', '2024-02-29', '2024-03-01', '2024-03-02',
'2024-03-03', '2024-03-04', '2024-03-05', '2024-03-06',
'2024-03-07', '2024-03-08', '2024-03-09', '2024-03-10',
'2024-03-11', '2024-03-12', '2024-03-13', '2024-03-14',
'2024-03-15', '2024-03-16', '2024-03-17', '2024-03-18',
'2024-03-19', '2024-03-20', '2024-03-21', '2024-03-22',
'2024-03-23', '2024-03-24', '2024-03-25', '2024-03-26',
'2024-03-27', '2024-03-28', '2024-03-29', '2024-03-30',
'2024-03-31', '2024-04-01', '2024-04-02', '2024-04-03',
'2024-04-04', '2024-04-05', '2024-04-06', '2024-04-07',
'2024-04-08', '2024-04-09', '2024-04-10', '2024-04-11',
'2024-04-12', '2024-04-13', '2024-04-14', '2024-04-15',
'2024-04-16', '2024-04-17', '2024-04-18', '2024-04-19',
'2024-04-20', '2024-04-21', '2024-04-22', '2024-04-23',
'2024-04-24', '2024-04-25', '2024-04-26', '2024-04-27',
'2024-04-28', '2024-04-29', '2024-04-30', '2024-05-01',
'2024-05-02', '2024-05-03', '2024-05-04', '2024-05-05',
'2024-05-06', '2024-05-07', '2024-05-08', '2024-05-09',
'2024-05-10', '2024-05-11', '2024-05-12', '2024-05-13',
'2024-05-14', '2024-05-15', '2024-05-16', '2024-05-17'],
dtype='datetime64[ns]', freq='D')
ts.index.year
Index([2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
2024, 2024, 2024, 2024],
dtype='int32')
ts.index.month
Index([2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5],
dtype='int32')
ts.index.day
Index([ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 1,
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, 17],
dtype='int32')
ts.index.dayofweek
Index([3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5,
6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1,
2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4,
5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0,
1, 2, 3, 4],
dtype='int32')
3. 时间序列常用方法
3.1 对时间做一些移动/滞后、频率转换、采样等相关操作
index = pd.date_range("2024-2-8",periods=365,freq="D")
ts = pd.Series(np.random.randint(0,500,len(index)),index=index)
ts
2024-02-08 381
2024-02-09 120
2024-02-10 209
2024-02-11 33
2024-02-12 367
...
2025-02-02 56
2025-02-03 395
2025-02-04 129
2025-02-05 129
2025-02-06 71
Freq: D, Length: 365, dtype: int32
3.2 移动
ts.shift()
2024-02-08 NaN
2024-02-09 381.0
2024-02-10 120.0
2024-02-11 209.0
2024-02-12 33.0
...
2025-02-02 12.0
2025-02-03 56.0
2025-02-04 395.0
2025-02-05 129.0
2025-02-06 129.0
Freq: D, Length: 365, dtype: float64
ts.shift(periods=2)
2024-02-08 NaN
2024-02-09 NaN
2024-02-10 381.0
2024-02-11 120.0
2024-02-12 209.0
...
2025-02-02 349.0
2025-02-03 12.0
2025-02-04 56.0
2025-02-05 395.0
2025-02-06 129.0
Freq: D, Length: 365, dtype: float64
ts.shift(periods=-2)
2024-02-08 209.0
2024-02-09 33.0
2024-02-10 367.0
2024-02-11 154.0
2024-02-12 43.0
...
2025-02-02 129.0
2025-02-03 129.0
2025-02-04 71.0
2025-02-05 NaN
2025-02-06 NaN
Freq: D, Length: 365, dtype: float64
3.3 频率转换
ts.asfreq(pd.tseries.offsets.Week())
2024-02-08 381
2024-02-15 68
2024-02-22 432
2024-02-29 191
2024-03-07 490
2024-03-14 297
2024-03-21 244
2024-03-28 405
2024-04-04 129
2024-04-11 492
2024-04-18 351
2024-04-25 226
2024-05-02 460
2024-05-09 375
2024-05-16 296
2024-05-23 428
2024-05-30 379
2024-06-06 431
2024-06-13 296
2024-06-20 274
2024-06-27 321
2024-07-04 242
2024-07-11 110
2024-07-18 298
2024-07-25 236
2024-08-01 281
2024-08-08 81
2024-08-15 415
2024-08-22 489
2024-08-29 14
2024-09-05 80
2024-09-12 197
2024-09-19 245
2024-09-26 261
2024-10-03 240
2024-10-10 324
2024-10-17 474
2024-10-24 283
2024-10-31 44
2024-11-07 98
2024-11-14 380
2024-11-21 13
2024-11-28 42
2024-12-05 292
2024-12-12 95
2024-12-19 147
2024-12-26 348
2025-01-02 379
2025-01-09 54
2025-01-16 235
2025-01-23 8
2025-01-30 479
2025-02-06 71
Freq: W, dtype: int32
ts.asfreq(pd.tseries.offsets.MonthEnd())
2024-02-29 191
2024-03-31 237
2024-04-30 344
2024-05-31 440
2024-06-30 425
2024-07-31 268
2024-08-31 325
2024-09-30 307
2024-10-31 44
2024-11-30 91
2024-12-31 289
2025-01-31 349
Freq: M, dtype: int32
ts.asfreq(pd.tseries.offsets.Hour(),fill_value=0)
2024-02-08 00:00:00 381
2024-02-08 01:00:00 0
2024-02-08 02:00:00 0
2024-02-08 03:00:00 0
2024-02-08 04:00:00 0
...
2025-02-05 20:00:00 0
2025-02-05 21:00:00 0
2025-02-05 22:00:00 0
2025-02-05 23:00:00 0
2025-02-06 00:00:00 71
Freq: H, Length: 8737, dtype: int32
4. resample:根据日期维度进行数据聚合
4.1 按照分钟(T)、小时(H)、日(D)、周(W)、月(M)、年(Y)等来作为日期维度
index = pd.date_range("2024-2-8",periods=365,freq="D")
ts = pd.Series(np.random.randint(0,500,len(index)),index=index)
ts
2024-02-08 484
2024-02-09 23
2024-02-10 135
2024-02-11 407
2024-02-12 169
...
2025-02-02 358
2025-02-03 52
2025-02-04 140
2025-02-05 305
2025-02-06 227
Freq: D, Length: 365, dtype: int32
ts.resample("D").sum()
2024-02-08 484
2024-02-09 23
2024-02-10 135
2024-02-11 407
2024-02-12 169
...
2025-02-02 358
2025-02-03 52
2025-02-04 140
2025-02-05 305
2025-02-06 227
Freq: D, Length: 365, dtype: int32
ts.resample("2D").sum()
2024-02-08 507
2024-02-10 542
2024-02-12 397
2024-02-14 696
2024-02-16 670
...
2025-01-29 696
2025-01-31 911
2025-02-02 410
2025-02-04 445
2025-02-06 227
Freq: 2D, Length: 183, dtype: int32
ts.resample("2W").sum()
2024-02-11 1049
2024-02-25 3436
2024-03-10 3220
2024-03-24 3876
2024-04-07 3139
2024-04-21 3295
2024-05-05 3379
2024-05-19 3297
2024-06-02 3369
2024-06-16 2960
2024-06-30 4095
2024-07-14 2866
2024-07-28 2571
2024-08-11 3603
2024-08-25 3739
2024-09-08 3119
2024-09-22 2961
2024-10-06 2966
2024-10-20 3809
2024-11-03 3701
2024-11-17 3496
2024-12-01 4087
2024-12-15 3275
2024-12-29 3301
2025-01-12 3018
2025-01-26 3032
2025-02-09 3260
Freq: 2W-SUN, dtype: int32
ts.resample("3M").sum()
2024-02-29 5418
2024-05-31 22268
2024-08-31 21430
2024-11-30 22536
2025-02-28 16267
Freq: 3M, dtype: int32
ts.resample("3M").sum().cumsum()
2024-02-29 5418
2024-05-31 27686
2024-08-31 49116
2024-11-30 71652
2025-02-28 87919
Freq: 3M, dtype: int32
ts.resample("H").sum()
2024-02-08 00:00:00 484
2024-02-08 01:00:00 0
2024-02-08 02:00:00 0
2024-02-08 03:00:00 0
2024-02-08 04:00:00 0
...
2025-02-05 20:00:00 0
2025-02-05 21:00:00 0
2025-02-05 22:00:00 0
2025-02-05 23:00:00 0
2025-02-06 00:00:00 227
Freq: H, Length: 8737, dtype: int32
ts.resample("T").sum()
2024-02-08 00:00:00 484
2024-02-08 00:01:00 0
2024-02-08 00:02:00 0
2024-02-08 00:03:00 0
2024-02-08 00:04:00 0
...
2025-02-05 23:56:00 0
2025-02-05 23:57:00 0
2025-02-05 23:58:00 0
2025-02-05 23:59:00 0
2025-02-06 00:00:00 227
Freq: T, Length: 524161, dtype: int32
ts.resample("S").sum()
2024-02-08 00:00:00 484
2024-02-08 00:00:01 0
2024-02-08 00:00:02 0
2024-02-08 00:00:03 0
2024-02-08 00:00:04 0
...
2025-02-05 23:59:56 0
2025-02-05 23:59:57 0
2025-02-05 23:59:58 0
2025-02-05 23:59:59 0
2025-02-06 00:00:00 227
Freq: S, Length: 31449601, dtype: int32
d = {
"price":[10,11,2,44,33,44,55,66],
"score":[40,30,20,50,60,70,80,10],
"week":pd.date_range("2024-2-8",periods=8,freq="W")
}
df = pd.DataFrame(d)
df
| price | score | week |
---|
0 | 10 | 40 | 2024-02-11 |
---|
1 | 11 | 30 | 2024-02-18 |
---|
2 | 2 | 20 | 2024-02-25 |
---|
3 | 44 | 50 | 2024-03-03 |
---|
4 | 33 | 60 | 2024-03-10 |
---|
5 | 44 | 70 | 2024-03-17 |
---|
6 | 55 | 80 | 2024-03-24 |
---|
7 | 66 | 10 | 2024-03-31 |
---|
df.resample("M",on="week").sum()
| price | score |
---|
week | | |
---|
2024-02-29 | 23 | 90 |
---|
2024-03-31 | 242 | 270 |
---|
df.resample("M",on="week").apply(np.sum)
| price | score |
---|
week | | |
---|
2024-02-29 | 23 | 90 |
---|
2024-03-31 | 242 | 270 |
---|
df.resample("M",on="week").agg({"price":np.mean,"score":np.sum})
| price | score |
---|
week | | |
---|
2024-02-29 | 7.666667 | 90 |
---|
2024-03-31 | 48.400000 | 270 |
---|
5. 时区
index = pd.date_range("2024-2-8 00:00",periods=3,freq="D")
ts = pd.Series(np.random.randn(len(index)),index=index)
ts
2024-02-08 1.866786
2024-02-09 -0.475396
2024-02-10 -0.723146
Freq: D, dtype: float64
import pytz
pytz.common_timezones
['Africa/Abidjan', 'Africa/Accra', 'Africa/Addis_Ababa', 'Africa/Algiers', 'Africa/Asmara', 'Africa/Bamako', 'Africa/Bangui', 'Africa/Banjul', 'Africa/Bissau', 'Africa/Blantyre', 'Africa/Brazzaville', 'Africa/Bujumbura', 'Africa/Cairo', 'Africa/Casablanca', 'Africa/Ceuta', 'Africa/Conakry', 'Africa/Dakar', 'Africa/Dar_es_Salaam', 'Africa/Djibouti', 'Africa/Douala', 'Africa/El_Aaiun', 'Africa/Freetown', 'Africa/Gaborone', 'Africa/Harare', 'Africa/Johannesburg', 'Africa/Juba', 'Africa/Kampala', 'Africa/Khartoum', 'Africa/Kigali', 'Africa/Kinshasa', 'Africa/Lagos', 'Africa/Libreville', 'Africa/Lome', 'Africa/Luanda', 'Africa/Lubumbashi', 'Africa/Lusaka', 'Africa/Malabo', 'Africa/Maputo', 'Africa/Maseru', 'Africa/Mbabane', 'Africa/Mogadishu', 'Africa/Monrovia', 'Africa/Nairobi', 'Africa/Ndjamena', 'Africa/Niamey', 'Africa/Nouakchott', 'Africa/Ouagadougou', 'Africa/Porto-Novo', 'Africa/Sao_Tome', 'Africa/Tripoli', 'Africa/Tunis', 'Africa/Windhoek', 'America/Adak', 'America/Anchorage', 'America/Anguilla', 'America/Antigua', 'America/Araguaina', 'America/Argentina/Buenos_Aires', 'America/Argentina/Catamarca', 'America/Argentina/Cordoba', 'America/Argentina/Jujuy', 'America/Argentina/La_Rioja', 'America/Argentina/Mendoza', 'America/Argentina/Rio_Gallegos', 'America/Argentina/Salta', 'America/Argentina/San_Juan', 'America/Argentina/San_Luis', 'America/Argentina/Tucuman', 'America/Argentina/Ushuaia', 'America/Aruba', 'America/Asuncion', 'America/Atikokan', 'America/Bahia', 'America/Bahia_Banderas', 'America/Barbados', 'America/Belem', 'America/Belize', 'America/Blanc-Sablon', 'America/Boa_Vista', 'America/Bogota', 'America/Boise', 'America/Cambridge_Bay', 'America/Campo_Grande', 'America/Cancun', 'America/Caracas', 'America/Cayenne', 'America/Cayman', 'America/Chicago', 'America/Chihuahua', 'America/Ciudad_Juarez', 'America/Costa_Rica', 'America/Creston', 'America/Cuiaba', 'America/Curacao', 'America/Danmarkshavn', 'America/Dawson', 'America/Dawson_Creek', 'America/Denver', 'America/Detroit', 'America/Dominica', 'America/Edmonton', 'America/Eirunepe', 'America/El_Salvador', 'America/Fort_Nelson', 'America/Fortaleza', 'America/Glace_Bay', 'America/Goose_Bay', 'America/Grand_Turk', 'America/Grenada', 'America/Guadeloupe', 'America/Guatemala', 'America/Guayaquil', 'America/Guyana', 'America/Halifax', 'America/Havana', 'America/Hermosillo', 'America/Indiana/Indianapolis', 'America/Indiana/Knox', 'America/Indiana/Marengo', 'America/Indiana/Petersburg', 'America/Indiana/Tell_City', 'America/Indiana/Vevay', 'America/Indiana/Vincennes', 'America/Indiana/Winamac', 'America/Inuvik', 'America/Iqaluit', 'America/Jamaica', 'America/Juneau', 'America/Kentucky/Louisville', 'America/Kentucky/Monticello', 'America/Kralendijk', 'America/La_Paz', 'America/Lima', 'America/Los_Angeles', 'America/Lower_Princes', 'America/Maceio', 'America/Managua', 'America/Manaus', 'America/Marigot', 'America/Martinique', 'America/Matamoros', 'America/Mazatlan', 'America/Menominee', 'America/Merida', 'America/Metlakatla', 'America/Mexico_City', 'America/Miquelon', 'America/Moncton', 'America/Monterrey', 'America/Montevideo', 'America/Montserrat', 'America/Nassau', 'America/New_York', 'America/Nome', 'America/Noronha', 'America/North_Dakota/Beulah', 'America/North_Dakota/Center', 'America/North_Dakota/New_Salem', 'America/Nuuk', 'America/Ojinaga', 'America/Panama', 'America/Paramaribo', 'America/Phoenix', 'America/Port-au-Prince', 'America/Port_of_Spain', 'America/Porto_Velho', 'America/Puerto_Rico', 'America/Punta_Arenas', 'America/Rankin_Inlet', 'America/Recife', 'America/Regina', 'America/Resolute', 'America/Rio_Branco', 'America/Santarem', 'America/Santiago', 'America/Santo_Domingo', 'America/Sao_Paulo', 'America/Scoresbysund', 'America/Sitka', 'America/St_Barthelemy', 'America/St_Johns', 'America/St_Kitts', 'America/St_Lucia', 'America/St_Thomas', 'America/St_Vincent', 'America/Swift_Current', 'America/Tegucigalpa', 'America/Thule', 'America/Tijuana', 'America/Toronto', 'America/Tortola', 'America/Vancouver', 'America/Whitehorse', 'America/Winnipeg', 'America/Yakutat', 'Antarctica/Casey', 'Antarctica/Davis', 'Antarctica/DumontDUrville', 'Antarctica/Macquarie', 'Antarctica/Mawson', 'Antarctica/McMurdo', 'Antarctica/Palmer', 'Antarctica/Rothera', 'Antarctica/Syowa', 'Antarctica/Troll', 'Antarctica/Vostok', 'Arctic/Longyearbyen', 'Asia/Aden', 'Asia/Almaty', 'Asia/Amman', 'Asia/Anadyr', 'Asia/Aqtau', 'Asia/Aqtobe', 'Asia/Ashgabat', 'Asia/Atyrau', 'Asia/Baghdad', 'Asia/Bahrain', 'Asia/Baku', 'Asia/Bangkok', 'Asia/Barnaul', 'Asia/Beirut', 'Asia/Bishkek', 'Asia/Brunei', 'Asia/Chita', 'Asia/Choibalsan', 'Asia/Colombo', 'Asia/Damascus', 'Asia/Dhaka', 'Asia/Dili', 'Asia/Dubai', 'Asia/Dushanbe', 'Asia/Famagusta', 'Asia/Gaza', 'Asia/Hebron', 'Asia/Ho_Chi_Minh', 'Asia/Hong_Kong', 'Asia/Hovd', 'Asia/Irkutsk', 'Asia/Jakarta', 'Asia/Jayapura', 'Asia/Jerusalem', 'Asia/Kabul', 'Asia/Kamchatka', 'Asia/Karachi', 'Asia/Kathmandu', 'Asia/Khandyga', 'Asia/Kolkata', 'Asia/Krasnoyarsk', 'Asia/Kuala_Lumpur', 'Asia/Kuching', 'Asia/Kuwait', 'Asia/Macau', 'Asia/Magadan', 'Asia/Makassar', 'Asia/Manila', 'Asia/Muscat', 'Asia/Nicosia', 'Asia/Novokuznetsk', 'Asia/Novosibirsk', 'Asia/Omsk', 'Asia/Oral', 'Asia/Phnom_Penh', 'Asia/Pontianak', 'Asia/Pyongyang', 'Asia/Qatar', 'Asia/Qostanay', 'Asia/Qyzylorda', 'Asia/Riyadh', 'Asia/Sakhalin', 'Asia/Samarkand', 'Asia/Seoul', 'Asia/Shanghai', 'Asia/Singapore', 'Asia/Srednekolymsk', 'Asia/Taipei', 'Asia/Tashkent', 'Asia/Tbilisi', 'Asia/Tehran', 'Asia/Thimphu', 'Asia/Tokyo', 'Asia/Tomsk', 'Asia/Ulaanbaatar', 'Asia/Urumqi', 'Asia/Ust-Nera', 'Asia/Vientiane', 'Asia/Vladivostok', 'Asia/Yakutsk', 'Asia/Yangon', 'Asia/Yekaterinburg', 'Asia/Yerevan', 'Atlantic/Azores', 'Atlantic/Bermuda', 'Atlantic/Canary', 'Atlantic/Cape_Verde', 'Atlantic/Faroe', 'Atlantic/Madeira', 'Atlantic/Reykjavik', 'Atlantic/South_Georgia', 'Atlantic/St_Helena', 'Atlantic/Stanley', 'Australia/Adelaide', 'Australia/Brisbane', 'Australia/Broken_Hill', 'Australia/Darwin', 'Australia/Eucla', 'Australia/Hobart', 'Australia/Lindeman', 'Australia/Lord_Howe', 'Australia/Melbourne', 'Australia/Perth', 'Australia/Sydney', 'Canada/Atlantic', 'Canada/Central', 'Canada/Eastern', 'Canada/Mountain', 'Canada/Newfoundland', 'Canada/Pacific', 'Europe/Amsterdam', 'Europe/Andorra', 'Europe/Astrakhan', 'Europe/Athens', 'Europe/Belgrade', 'Europe/Berlin', 'Europe/Bratislava', 'Europe/Brussels', 'Europe/Bucharest', 'Europe/Budapest', 'Europe/Busingen', 'Europe/Chisinau', 'Europe/Copenhagen', 'Europe/Dublin', 'Europe/Gibraltar', 'Europe/Guernsey', 'Europe/Helsinki', 'Europe/Isle_of_Man', 'Europe/Istanbul', 'Europe/Jersey', 'Europe/Kaliningrad', 'Europe/Kirov', 'Europe/Kyiv', 'Europe/Lisbon', 'Europe/Ljubljana', 'Europe/London', 'Europe/Luxembourg', 'Europe/Madrid', 'Europe/Malta', 'Europe/Mariehamn', 'Europe/Minsk', 'Europe/Monaco', 'Europe/Moscow', 'Europe/Oslo', 'Europe/Paris', 'Europe/Podgorica', 'Europe/Prague', 'Europe/Riga', 'Europe/Rome', 'Europe/Samara', 'Europe/San_Marino', 'Europe/Sarajevo', 'Europe/Saratov', 'Europe/Simferopol', 'Europe/Skopje', 'Europe/Sofia', 'Europe/Stockholm', 'Europe/Tallinn', 'Europe/Tirane', 'Europe/Ulyanovsk', 'Europe/Vaduz', 'Europe/Vatican', 'Europe/Vienna', 'Europe/Vilnius', 'Europe/Volgograd', 'Europe/Warsaw', 'Europe/Zagreb', 'Europe/Zurich', 'GMT', 'Indian/Antananarivo', 'Indian/Chagos', 'Indian/Christmas', 'Indian/Cocos', 'Indian/Comoro', 'Indian/Kerguelen', 'Indian/Mahe', 'Indian/Maldives', 'Indian/Mauritius', 'Indian/Mayotte', 'Indian/Reunion', 'Pacific/Apia', 'Pacific/Auckland', 'Pacific/Bougainville', 'Pacific/Chatham', 'Pacific/Chuuk', 'Pacific/Easter', 'Pacific/Efate', 'Pacific/Fakaofo', 'Pacific/Fiji', 'Pacific/Funafuti', 'Pacific/Galapagos', 'Pacific/Gambier', 'Pacific/Guadalcanal', 'Pacific/Guam', 'Pacific/Honolulu', 'Pacific/Kanton', 'Pacific/Kiritimati', 'Pacific/Kosrae', 'Pacific/Kwajalein', 'Pacific/Majuro', 'Pacific/Marquesas', 'Pacific/Midway', 'Pacific/Nauru', 'Pacific/Niue', 'Pacific/Norfolk', 'Pacific/Noumea', 'Pacific/Pago_Pago', 'Pacific/Palau', 'Pacific/Pitcairn', 'Pacific/Pohnpei', 'Pacific/Port_Moresby', 'Pacific/Rarotonga', 'Pacific/Saipan', 'Pacific/Tahiti', 'Pacific/Tarawa', 'Pacific/Tongatapu', 'Pacific/Wake', 'Pacific/Wallis', 'US/Alaska', 'US/Arizona', 'US/Central', 'US/Eastern', 'US/Hawaii', 'US/Mountain', 'US/Pacific', 'UTC']
ts = ts.tz_localize(tz="UTC")
ts
2024-02-08 00:00:00+00:00 1.866786
2024-02-09 00:00:00+00:00 -0.475396
2024-02-10 00:00:00+00:00 -0.723146
Freq: D, dtype: float64
ts.tz_convert(tz="Asia/Shanghai")
2024-02-08 08:00:00+08:00 1.866786
2024-02-09 08:00:00+08:00 -0.475396
2024-02-10 08:00:00+08:00 -0.723146
Freq: D, dtype: float64