pandas转换为日期及期间切片
import numpy as np
import pandas as pd
filename = ‘test.xlsx’
df = pd.read_excel( filename )
df[‘证照颁发年份’] = df[‘证照颁发日期’].apply(lambda x: str(x)[0:4])
1) 把“证照颁发日期”解析为 datetime(同时兼容“2025年7月23日”这种中文格式)
date_col = ‘证照颁发日期’
d = pd.to_datetime(df[date_col], format=‘%Y年%m月%d日’, errors=‘coerce’)
df[‘颁发日期_dt’] = d
可选:提年份(比字符串切片更稳)
df[‘证照颁发年份’] = df[‘颁发日期_dt’].dt.year.astype(‘Int64’)
2) 定义三个“闭区间”(含起含止)
m1 = (d >= pd.Timestamp(‘2025-07-23’)) & (d <= pd.Timestamp(‘2025-10-22’)) # 2025/07/23–2025/10/22
m2 = (d >= pd.Timestamp(‘2025-04-23’)) & (d <= pd.Timestamp(‘2025-07-22’)) # 2025/04/23–2025/07/22
m3 = (d >= pd.Timestamp(‘2024-07-23’)) & (d <= pd.Timestamp(‘2024-10-22’)) # 2024/07/23–2024/10/22
3) 赋“期间”标签,其他保持 NA(不标记)
labels = [‘2025-07-23~2025-10-22’, ‘2025-04-23~2025-07-22’, ‘2024-07-23~2024-10-22’]
df[‘期间’] = np.select([m1, m2, m3], labels, default=pd.NA)
