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

如何为pandas DataFrame中非缺失值添加字符串前缀?

pandas非缺失值批量加指定前缀实现方法

核心思路

直接使用df.notna()生成的布尔掩码作为条件判断依据,结合pandas自带的where方法做批量条件替换:缺失值位置保留原始值,非缺失值位置统一转换为字符串后拼接+前缀即可。

实现步骤

  1. 首先构造示例测试DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame(dict(
    age=[5, 6, np.NaN],
    born=[pd.NaT, pd.Timestamp('1939-05-27'), pd.Timestamp('1940-04-25')],
    name=['Alfred', 'Batman', ''],
    toy=[None, 'Batmobile', 'Joker']
))
  1. 基于df.notna()的布尔结果做批量处理
result = df.where(
    cond=~df.notna(),  # 缺失值位置条件为真,保留原始值
    other='+' + df.astype(str)  # 非缺失值位置条件为假,替换为加前缀后的字符串
)

运行结果

执行代码后输出的结果和预期完全一致:

age         born     name         toy
0  +5.0          NaT  +Alfred        None
1  +6.0  +1939-05-27  +Batman  +Batmobile
2   NaN  +1940-04-25        +      +Joker

说明

  • 该方法会自动识别所有类型的缺失值:np.NaN、pd.NaT、None都不会被修改,保留原始空值状态
  • 空字符串属于非缺失值,会按规则正确添加+前缀
  • 提前用astype(str)统一转换列类型,兼容数值、时间戳、字符串等不同类型的列,不会出现类型拼接报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 02:46:12