Python/Pandas:如何检测DataFrame中列的取值是否固定并生成标识列
Pandas 连续重复值检测打标实现方案
以下是可直接运行的实现代码,输出结果和你给出的预期完全匹配:
import pandas as pd # 构造示例DataFrame,你可以替换为自己的数据源 df = pd.DataFrame({ 'index_1': [0, 1, 2, 2, 2, 3, 4, 4, 5, 6] }) # 核心逻辑 # 1. 为每一段连续相同的index_1值分配独立的分组编号 consecutive_group = (df['index_1'] != df['index_1'].shift()).cumsum() # 2. 统计每个分组的长度,长度≥2的分组所有行标记为1,否则为0 df['change'] = consecutive_group.map(consecutive_group.value_counts()).ge(2).astype(int) # 查看输出结果 print(df)
逻辑说明
- 第一步通过
shift()将index_1列向下偏移一行,和原列比较即可判断当前行与上一行值是否相同,累加后得到的结果就是连续相同值的分组编号 - 第二步统计每个分组的行数,只要分组行数大于等于2,就说明该组内的值属于连续重复,统一标记为1即可
内容的提问来源于stack exchange,提问作者Horst-Jackson
相关产品推荐
相关产品推荐

