使用Pandas删除特定词前内容并提取其后指定数量词汇
提取DataFrame中的收件人姓名
针对你的需求,这里提供直接的pandas字符串处理方案,支持灵活调整提取的词汇数量:
完整代码实现
import pandas as pd # 初始化DataFrame df = pd.DataFrame({'caption':'hello this pack is for you: Jake Peralta. Thanks'}) # 设置要提取的词汇数量,可按需调整 target_word_count = 2 # 提取目标姓名 df['recipient_name'] = ( df['caption'] # 按固定分隔符分割,取后半段内容 .str.split('for you:', expand=True)[1] # 移除开头的空白字符 .str.strip() # 按空格拆分成词汇列表 .str.split() # 取前N个词汇并拼接成字符串 .apply(lambda words: ' '.join(words[:target_word_count])) ) print(df)
代码说明
str.split('for you:', expand=True)[1]:精准定位"for you:"之后的内容,分割后取第二部分str.strip():消除分割后开头的空格,避免后续拆分出无效空值str.split():将剩余内容按空格拆分为独立词汇的列表apply(lambda words: ' '.join(words[:target_word_count])):根据设定的数量截取前N个词汇,拼接成完整姓名
输出结果
运行代码后,DataFrame会新增recipient_name列,对应值为Jake Peralta。如果修改target_word_count为1,结果会变成Jake,完全支持数量调整。
内容的提问来源于stack exchange,提问作者Bushmaster
相关产品推荐
相关产品推荐

