You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas DataFrame中调整姓名格式并生成matchKey列

解决方案

可以通过Pandas的字符串处理能力快速实现需求,核心思路是拆分姓名、调整格式后重新拼接:

方法一:分步处理(清晰直观)

  1. 拆分姓氏与名字:按, 分割Name列,得到临时的姓氏列和名字列
  2. 调整姓氏大小写:将全大写的姓氏转换为每个单词首字母大写的格式
  3. 拼接生成matchKey列:按「名字 + 空格 + 处理后的姓氏」顺序组合
import pandas as pd
ds1 = {'Name':["CARO QUINTERO, Miguel Angel","CHANG, Ping Yun","GILBOA, Joseph"]}
df1 = pd.DataFrame(data=ds1)

# 拆分姓氏和名字
df1[['last_name', 'first_name']] = df1['Name'].str.split(', ', expand=True)
# 调整姓氏大小写并拼接成目标列
df1['matchKey'] = df1['first_name'] + ' ' + df1['last_name'].str.title()

# 可选:删除临时生成的拆分列
df1 = df1.drop(['last_name', 'first_name'], axis=1)

方法二:一行代码实现(简洁高效)

利用apply配合字符串操作直接完成转换,无需临时列:

import pandas as pd
ds1 = {'Name':["CARO QUINTERO, Miguel Angel","CHANG, Ping Yun","GILBOA, Joseph"]}
df1 = pd.DataFrame(data=ds1)

df1['matchKey'] = df1['Name'].apply(lambda x: f"{x.split(', ')[1]} {x.split(', ')[0].title()}")

最终效果

处理后的DataFrame内容如下:

Name                  matchKey
0  CARO QUINTERO, Miguel Angel  Miguel Angel Caro Quintero
1              CHANG, Ping Yun           Ping Yun Chang
2               GILBOA, Joseph            Joseph Gilboa

内容的提问来源于stack exchange,提问作者Giampaolo Levorato

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 22:07:09