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

如何将dataframe中匹配类型行的前后n条记录标记为相同类型

实现方案

你可以直接用pandas的shift偏移方法构造布尔掩码来实现,这是向量化操作,效率远高于自定义apply循环,也不会出现你之前遇到的参数类型问题,代码如下:

import pandas as pd

# 读入你的数据,若已经构造好了df可跳过这步
df = pd.read_csv("your_data_path.csv")

# 构造判断掩码:命中「当前行/上一行/下一行是Defect」的所有行
defect_mask = (df["TYPE"] == "Defect") | (df["TYPE"].shift(1) == "Defect") | (df["TYPE"].shift(-1) == "Defect")

# 给命中的行赋值Defect
df.loc[defect_mask, "TYPE"] = "Defect"

# 导出结果
df.to_csv("result.csv", index=False)

原理说明

  • df["TYPE"].shift(1):将TYPE列整体向下偏移1行,每一行取值对应原数据上一行的TYPE值,用来判断当前行的前一行是不是Defect
  • df["TYPE"].shift(-1):将TYPE列整体向上偏移1行,每一行取值对应原数据下一行的TYPE值,用来判断当前行的后一行是不是Defect
  • 三个条件取或后,刚好覆盖你需要标记的所有行,完全匹配你的预期输出要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:39:00