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

如何用错位列数据填充Pandas DataFrame中的空值?

解决方案:填充错位列的空值

这个需求完全可以实现,下面是具体步骤和代码示例:

步骤1:预处理空值

首先将数据中的空格(或空字符串)转换为pandas可识别的缺失值NaN,方便后续填充操作:

import pandas as pd
import numpy as np

# 构造实际数据集
data = {
    'Status': ['Active', 'Active', 'Active', 'Active'],
    'Name': ['Tom', '', 'Tom', ''],
    'Email': ['t@gmail.com', '', 't@gmail.com', ''],
    'Name2': ['', 'Tim', '', 'Tim'],
    'Email2': ['', 't@gmail.com', '', 't@gmail.com']
}

df = pd.DataFrame(data)

# 将空格/空字符串替换为NaN
df = df.replace(r'^\s*$', np.nan, regex=True)

步骤2:填充错位数据

使用combine_first方法,用Name2列的值填充Name列的缺失值,用Email2列的值填充Email列的缺失值:

df['Name'] = df['Name'].combine_first(df['Name2'])
df['Email'] = df['Email'].combine_first(df['Email2'])

步骤3:清理冗余列(可选)

如果不需要保留Name2和Email2列,可以直接删除:

df = df.drop(['Name2', 'Email2'], axis=1)

最终结果

处理后的DataFrame如下:

Status  Name        Email
0  Active   Tom  t@gmail.com
1  Active   Tim  t@gmail.com
2  Active   Tom  t@gmail.com
3  Active   Tim  t@gmail.com

(注:你的预期结果中第四行写的是Tom,但根据实际数据集,第四行的Name2是Tim,所以正确填充后应该是Tim。如果是笔误,可以根据实际情况调整逻辑。)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 10:40:25