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

Pandas拼接姓名列时仅为两列全空行填充John Doe的实现问题

问题原因

你的原有代码存在两处核心问题:

  1. 列名拼写错误:原始数据列名为Last Name(Name首字母大写),你代码中写为Last name会触发KeyError
  2. 填充逻辑错误:你直接修改原始的姓名列、替换空格为John Doe的逻辑完全不符合需求,且拼接时多余的空格会导致全空行的结果为空白字符串,没有替换为目标值

修正后代码

import pandas as pd

df = pd.read_csv('file.csv', dtype=str, header=0)

# 拼接姓名,空值填充为空字符串后去除首尾多余空格
df['fullname'] = (df['First name'].fillna('') + ' ' + df['Last Name'].fillna('')).str.strip()

# 仅对拼接后全空的行替换为John Doe
df.loc[df['fullname'] == '', 'fullname'] = 'John Doe'

df.to_csv('file.csv', index=False)

逻辑说明

  • 拼接时先把两列的缺失值替换为空字符串,拼接后用str.strip()清理首尾空格,得到的结果:
    • 两列都有值的行正常输出全名
    • 只有单列有值的行会自动去掉多余空格,保留原有内容
    • 两列都为空的行处理后结果为空字符串
  • 单独针对空字符串的行替换为John Doe,不会影响其他部分非空的行,完全匹配你的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:36:03