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

Python错位数据多列右移、插入值及填充NaN的数据清洗咨询

解决Python中数据集行错位与插入指定值的问题

问题场景

在Python Notebook处理数据集时,遇到部分行数据错位:这些行的数据需要从Unit列开始向右平移一格;同时需要在Unit列的合适位置插入"mg",移位产生的空缺填充为NaN。

原始表格:
原始表格

预期表格:
预期表格

解决方案(基于Pandas)

核心思路是先定位错位行,再对指定列范围右移,最后填充指定值和NaN,以下是具体实现:

代码实现

import pandas as pd
import numpy as np

# 读取原始数据(根据实际数据源调整读取方式)
df = pd.read_excel("your_dataset.xlsx")

# 1. 定位需要移位的行:根据数据特征判断,示例为Unit列出现Shape列的特征值
mask = df['Unit'].isin(['圆形', '方形', '三角形'])

# 2. 对目标行从Unit列开始向右平移一格
df.loc[mask, 'Unit':] = df.loc[mask, 'Unit':].shift(axis=1)

# 3. 在移位后的Unit列填入"mg"
df.loc[mask, 'Unit'] = 'mg'

# 4. 将空值统一替换为标准NaN
df = df.replace('', np.nan)

# 查看处理结果
print(df)

关键步骤说明

  • 定位错位行:通过mask筛选出Unit列存在异常值(本该属于Shape列的内容)的行,可根据实际数据特征调整判断条件,比如用df['Unit'].str.contains('形状关键词')匹配。
  • 列方向移位:shift(axis=1)实现行内列的右移操作,指定'Unit':作为操作范围,确保仅从Unit列开始向后移位。
  • 填充指定值:给移位后的Unit列赋值"mg",补全缺失的单位信息。
  • 统一空值格式:用replace('', np.nan)将移位产生的空字符串转为标准NaN,便于后续数据处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:45:07