如何用Python提取DataFrame列中的人名?已移除前缀需剔除逗号后内容
提取DataFrame列中的人名
针对你要从字符串里仅保留人名的需求,给你几个实用的解决办法:
方法1:字符串拆分(简单直接)
既然你已经用df['column1'] = df['column1'].str.lstrip("0123456789.")去掉了开头的数字和点,现在可以直接按逗号拆分字符串,取第一部分再清理首尾空格:
df['column1'] = df['column1'].str.split(',').str[0].str.strip()
这个方法适配你给出的示例格式——人名后固定跟着逗号的场景,操作简单易理解。
方法2:正则表达式一步到位(更灵活)
如果想跳过先lstrip的步骤,直接精准提取人名,用正则表达式效率更高。比如匹配开头数字+点之后、逗号之前的字母与空格组合:
df['column1'] = df['column1'].str.extract(r'^\d+\.([A-Za-z\s]+),', expand=False).str.strip()
要是字符串格式有细微变动(比如偶尔没逗号),也可以调整正则,直接匹配由字母和空格组成的人名部分:
df['column1'] = df['column1'].str.extract(r'([A-Za-z\s]+)', expand=False).str.strip()
正则的优势是能适配更多格式场景,只要人名由字母和空格构成,就能准确提取。
内容的提问来源于stack exchange,提问作者NeitherHereNorThere
相关产品推荐
相关产品推荐

