如何提取pandas DataFrame列中前两个斜杠间的单词并生成新列
实现方法
你之前使用的df[df['col1'].str.contains("bill")]属于布尔索引语法,作用是筛选出col1列包含字符串bill的行,不具备子串提取的能力,因此无法实现需求。
你可以用以下两种常用方案完成需求:
方案1:字符串拆分法(最简单)
你的数据分隔规则固定为/,只需要按/拆分字符串后取第2个元素即可(注意字符串开头就是/,拆分后第一个元素是空值):
df['names'] = df['col1'].str.split('/').str[1]
方案2:正则提取法(适配性更强)
如果后续字符串格式有变动,也可以用正则匹配规则精准提取第一个/和第二个/之间的内容:
# 正则规则^/([a-zA-Z]+)/表示匹配开头第一个/后的字母组合,直到遇到下一个/ df['names'] = df['col1'].str.extract(r'^/([a-zA-Z]+)/')
运行以上任意一段代码后,都会在原DataFrame中生成你需要的names列。
内容的提问来源于stack exchange,提问作者me.limes
相关产品推荐
相关产品推荐

