You need to enable JavaScript to run this app. 如何在Python DataFrame中仅对含NaN的错位行跨列移动数据
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python DataFrame中仅对含NaN的错位行跨列移动数据

精准修正DataFrame指定行的列值错位问题

核心操作逻辑

不需要开展全表批量清洗操作,所有修改动作仅针对存在错位、携带NaN值的索引为2的目标行,其余行的所有原有数值100%保留,不做任何变动。
原目标行的错位成因很明确:该行所有数值整体向左偏移了1列,导致列值对应关系完全错位:

  • 原本归属Type列的位置被Rating列应有的数值2占据,Type列实际为空值
  • 原本归属Rating列的位置被Reviews列应有的数值19占据
  • 原本归属Reviews列的位置被Category列应有的数值3占据
  • 最右侧的Category列因为数值偏移留空,形成了初始表里的NaN值

实现代码

用loc做行+列的精准定位赋值,从机制上避免误碰其他正常行的数据:

import numpy as np
# 仅修改索引为2的行,按照正确列顺序传入对应值
df.loc[2, ["Type", "Rating", "Reviews", "Category"]] = [np.nan, 2, 19, 3]

关键注意点

  • 不要使用全局遍历、批量整表移位的方式调整数据,这类操作很容易把其他正常行的合法数值改错
  • 这种按行索引+列名的精准赋值方式,修改前后除了目标行之外,其余所有行的内容不会有任何差异
    执行完代码后,得到的DataFrame结构就和目标要求完全一致,没有额外改动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.09 00:45:03