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

如何识别Pandas数据框中的全大写字符串并调整其位置?

调整Pandas列中姓名与姓氏的顺序

首先重现你的数据场景:

import pandas as pd

ds = {"col1":["ROSSI Mauro", "Luca Giacomini", "Sonny Crockett"]}
df = pd.DataFrame(data=ds)

当前输出:

print(df)
             col1
0     ROSSI Mauro
1  Luca Giacomini
2  Sonny Crockett

需求:识别col1中全大写的字符串(作为姓氏),将其移至非全大写字符串(作为名字)的后方,最终得到目标格式。

解决方案

可以通过自定义函数结合apply方法实现,逻辑清晰且适配单姓氏、多名字的场景:

def rearrange_full_name(name_str):
    # 将姓名拆分为独立部分
    name_parts = name_str.split()
    # 分离姓氏(全大写)和名字(非全大写)
    last_name = [part for part in name_parts if part.isupper()]
    first_name = [part for part in name_parts if not part.isupper()]
    # 按「名字 + 姓氏」的顺序拼接
    return ' '.join(first_name + last_name)

# 应用函数到col1列
df['col1'] = df['col1'].apply(rearrange_full_name)

执行后输出结果:

print(df)
             col1
0     Mauro ROSSI
1  Luca Giacomini
2  Sonny Crockett

逻辑说明

  • split():将每个姓名按空格拆分成字符串列表
  • isupper():判断字符串是否为全大写,以此区分姓氏和名字
  • 最后按「名字在前、姓氏在后」的顺序拼接,确保符合需求格式

内容的提问来源于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 01:25:16