如何在Pandas中标准化日期列,去除小数仅保留年份?
Pandas 标准化年份列,提取纯年份的高效方法
针对不同格式的年份列,这里有几种高效的处理方式:
数值型年份(带小数)
如果你的年份列是浮点数(比如2020.5、2021.9),直接取整或向下取整即可:import pandas as pd import numpy as np # 直接转整数(自动截断小数部分) df['clean_year'] = df['year'].astype(int) # 若需要严格向下取整(比如2021.9转成2021而非2022) df['clean_year'] = np.floor(df['year']).astype(int)字符串型年份(含随机格式)
如果年份列是字符串(比如"2020/03"、"Year:2019"、"2021.10"),用正则提取连续四位数字作为年份:# 提取四位数字,自动忽略其他无关字符 df['clean_year'] = df['year'].str.extract(r'(\d{4})').astype(int)混合类型(数值+字符串)
先统一转为字符串再用正则提取:df['clean_year'] = df['year'].astype(str).str.extract(r'(\d{4})').astype(int)处理空值
如果部分行没有有效年份,可填充默认值:# 用0填充空值,也可替换为你需要的默认年份 df['clean_year'] = df['clean_year'].fillna(0).astype(int)
内容的提问来源于stack exchange,提问作者Aroune
相关产品推荐
相关产品推荐

