如何从含括号年份的Pandas列中提取纯整数年份?
提取DataFrame中FILM列的纯整数年份解决方案
我用代码
bf['Films_Year']=bf['FILM'].apply(lambda var:var.split('(')[-1])处理Pandas DataFrame的FILM列后,得到的结果是类似2015),这样的内容,如何提取出准确的纯整数年份?
以下是几种实用的解决方法:
方法1:字符串切片转换
直接截取分割结果的前4位字符,再转为整数:
bf['Films_Year'] = bf['FILM'].apply(lambda var: int(var.split('(')[-1][:4]))
逻辑:先按(分割取最后一段内容,年份作为4位数字在前,截取前4位后转成整数类型。
方法2:正则表达式提取
用正则匹配字符串中的4位连续数字,适配更多格式场景:
import re bf['Films_Year'] = bf['FILM'].apply(lambda var: int(re.search(r'\d{4}', var).group()))
逻辑:正则\d{4}精准匹配4位数字,不管年份前后的符号,直接提取目标内容后转整数。
方法3:Pandas矢量化操作(高效推荐)
使用Pandas内置的str.extract做矢量化处理,大数据量下性能更优:
bf['Films_Year'] = bf['FILM'].str.extract(r'(\d{4})').astype(int)
逻辑:str.extract直接从字符串列中提取匹配的正则分组,返回结果后转为整数类型,避免循环操作。
内容的提问来源于stack exchange,提问作者Aaqib Khan
相关产品推荐
相关产品推荐

