如何拆分DataFrame中无空格分隔的姓名与缩写?
解决方法
核心思路是用正则表达式匹配「小写字母紧跟大写字母」的姓名分隔边界,插入, 分隔符后,通过pandas的字符串方法批量处理整列。
1. 正则匹配规则
匹配模式:([a-z])([A-Z])
([a-z]):捕获姓名末尾的小写字母部分([A-Z]):捕获下一个姓名开头的大写字母
替换规则:\1, \2,即在两个捕获组之间插入, 分隔符。
2. pandas批量处理代码
假设你的DataFrame是df,目标列名为name_col,执行以下代码:
import pandas as pd # 示例数据 df = pd.DataFrame({ 'name_col': ['A B MclearyT WhitebottomIannis Clancy', 'SmithJ Doe'] }) # 对目标列执行全局替换 df['name_col'] = df['name_col'].str.replace(r'([a-z])([A-Z])', r'\1, \2', regex=True)
处理后示例输出的name_col列内容:
A B Mcleary, T Whitebottom, Iannis Clancy Smith, J Doe
说明
- 该规则完全适配你提到的「姓名首字母前均为小写字母」的特征,能准确拆分无空格连接的姓名。
- 若存在特殊姓名组合(比如合法的小写接大写结构),可根据实际数据微调正则表达式。
内容的提问来源于stack exchange,提问作者ian4339
相关产品推荐
相关产品推荐

