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

关于DataFrame中fillna()未填充D列索引1值的技术咨询

为什么索引1的D列值未被fillna('New_Value')填充?

兄弟,一眼就能看出问题所在——索引1的D列值不是真正的缺失值!它是带引号的字符串'None',而pandas的fillna()只认两种「真·空值」:Python原生的None对象,以及numpy的np.NaN。

具体分析:

  • 看你构造DataFrame的代码,索引1的D列写的是'None'(带单引号),这是一个普通的字符串,长度为4,完全不属于缺失值范畴;
  • 而那些被成功填充的空值,比如索引0的A列None、索引2的B/C列None,都是不带引号的Python原生None;索引0的E/H列、索引4的E/H列是np.NaN,这些才是fillna()会识别并处理的目标。

验证方法:

你可以运行下面的代码,查看D列每个元素的类型,就能直观看到差异:

print(df['D'].apply(type))

输出大概是这样:

0    <class 'str'>
1    <class 'str'>
2    <class 'bool'>
3    <class 'str'>
4    <class 'str'>
Name: D, dtype: object

很明显,索引1的D元素是字符串类型的'None',和其他真正的空值完全不是一回事。

解决办法:

如果想把字符串'None'也替换成'New_Value',可以先把它转换成真正的缺失值,再执行填充:

import numpy as np
import pandas as pd

# 先把字符串'None'替换为np.NaN
df = df.replace('None', np.NaN)
# 再统一填充所有缺失值
df = df.fillna('New_Value')

这样就能把所有你认为是「空值」的内容都替换成目标值了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:19:07