如何用Python从银行流水支付参考中提取纯字母文本?
解决方案
可以用Python正则表达式结合pandas字符串方法实现,核心是匹配仅由字母组成的独立单词,具体步骤如下:
- 核心匹配逻辑
使用正则表达式r'\b[a-zA-Z]+\b'定位纯字母单词:
\b:匹配单词边界,确保提取的是独立单词(不会从abc123这类字符串里误提取abc)[a-zA-Z]+:匹配1个及以上大小写字母- 借助pandas的
str.findall()方法,返回所有符合规则的单词列表
- 示例代码
import pandas as pd # 假设你的DataFrame名为df,支付参考列名为'payment_reference' df['extracted_words'] = df['payment_reference'].str.findall(r'\b[a-zA-Z]+\b') # 可选:将列表转为逗号分隔的字符串格式 df['extracted_words_str'] = df['extracted_words'].apply(lambda x: ', '.join(x))
- 测试效果
对于支付参考值15122021 Amazon ref 1021/1022,运行后:
extracted_words列的值为['Amazon', 'ref']- 若转成字符串格式,
extracted_words_str的值为Amazon, ref
- 扩展处理(可选)
- 统一转为小写/大写:
df['extracted_words'] = df['payment_reference'].str.findall(r'\b[a-zA-Z]+\b').apply(lambda x: [word.lower() for word in x]) - 排除单个字母的单词(仅提取长度≥2的),修改正则为
r'\b[a-zA-Z]{2,}\b'
内容的提问来源于stack exchange,提问作者James Kelly
相关产品推荐
相关产品推荐

