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

Pandas中填充NaN为指定字符串且保留None值的解决方案

只填充DataFrame中的NaN值,保留None值不变

Pandas的fillna()方法会同时处理NaN和None,要实现只替换NaN为指定字符串(比如'x')、保留None的需求,有两种简洁的方法:

方法1:使用replace()精准替换NaN

replace()可以单独匹配np.nan进行替换,不会影响None值,代码示例:

import pandas as pd
import numpy as np

# 构造示例DataFrame
data = {
    'A': [12, None, np.nan, 0],
    'B': [0, np.nan, 9.8, np.nan],
    'C': [None, None, 1, 1]
}
df = pd.DataFrame(data)

# 仅将NaN替换为'x'
df = df.replace({np.nan: 'x'})
print(df)

输出结果:

A     B     C
0    12     0  None
1  None     x  None
2     x   9.8     1
3     0     x     1

方法2:使用applymap()自定义判断逻辑

如果需要针对不同数据类型做更灵活的处理,可通过applymap()遍历每个元素,仅替换NaN:

def fill_nan_only(val):
    # 仅当元素是浮点型且为NaN时替换
    if isinstance(val, float) and np.isnan(val):
        return 'x'
    return val

df = df.applymap(fill_nan_only)

这个方法适配混合数据类型场景,确保对象列中的None不会被误替换。

内容的提问来源于stack exchange,提问作者Cansu Zöhre

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 19:01:05