python识别多个日期格式为年份

import datetime  
import re
import pandas as pd

def extract_year(date_str):
    if not isinstance(date_str, str):
        return None
    for year in range(1950, 2023):
        if str(year) in date_str:
            return year
        
    # 如果前面的循环不能识别出年份,就执行下面的语句
    if "-" in date_str:
        # 使用正则表达式匹配任意非数字、字母和空格字符作为分隔符
        year_str = re.split(r"\D+", date_str)[-1].strip()
        if len(year_str) == 0:
            return None
        elif len(year_str) == 2:             
            year = int(year_str)             
            return 2000 + year if year <= datetime.datetime.now().year % 100 else 1900 + year         
        else:             
            return int(year_str)     
    else:         
        return None  # 如果日期格式无法识别,则返回 None
    
df = pd.read_excel(r'C:\Users\win10\Desktop\(2).xlsx')

# 将日期字符串转换为年份,并添加为新的一列
df['year'] = df['art_date'].apply(extract_year)

# 删除年份为空的行
df.dropna(subset=['year'], inplace=True)

# 统计各年份的数量并按照数量降序排列
result = df['year'].astype(int).value_counts().sort_values(ascending=False).reset_index()

# 重命名列名
result.columns = ['年份', '数量']

# 创建新的 Excel 文件并写入数据
result.to_excel(r'C:\Users\win10\Desktop\new_excel_file.xlsx', index=False)

你可能感兴趣的:(python,开发语言)