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

遍历DataFrame列表执行fillna清除NaN操作未生效如何解决

问题原因
  • 遍历语句语法错误:你编写的for i in ListOfDFs[i]存在逻辑问题,循环启动时变量i还未被定义,无法作为索引读取列表元素,直接遍历列表元素不需要加下标,正确写法为for i in ListOfDFs。
  • 赋值逻辑无效:循环中的变量i只是指向列表内DataFrame对象的临时引用,执行i = i.fillna("")时,仅会让临时变量i指向fillna返回的新DataFrame对象,既不会修改列表中存储的原元素,也不会修改你提前定义的DP、SMP等独立变量。此外fillna默认返回新对象,不会修改原对象本身。
正确实现方式

方案1:生成新的处理后列表(不修改原始DataFrame)

如果需要保留原始未处理的DataFrame,可直接通过列表推导式生成新的处理后列表:

processed_ListOfDFs = [df.fillna("") for df in ListOfDFs]

如果要直接修改原列表的存储内容,可通过下标遍历赋值:

for idx in range(len(ListOfDFs)):
    ListOfDFs[idx] = ListOfDFs[idx].fillna("")

方案2:直接修改原始DataFrame对象(同步更新DP、SMP等独立变量)

如果不需要保留原始NaN数据,可通过inplace=True参数直接在原对象上修改,执行后你定义的DP、SMP等独立变量的内容会同步更新:

for df in ListOfDFs:
    df.fillna("", inplace=True)

内容的提问来源于stack exchange,提问作者Rob de Leeuw

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:06:04