Pandas DataFrame删除wow列夹在1中间的0值噪声行实现方法
Pandas DataFrame噪声行清洗方案
核心逻辑:定位wow列中符合「前一行为1、当前行为0、后一行为1」的异常行,直接删除即可完成修正,完整实现代码如下:
import pandas as pd # 替换为你的原始DataFrame变量名 df = pd.read_csv("你的数据文件路径") # 统一wow列数据类型为整数,避免浮点、字符串混合导致判断失效 df["wow"] = df["wow"].astype(int) # 构造异常行判断条件 is_noise = (df["wow"] == 0) & (df["wow"].shift(1) == 1) & (df["wow"].shift(-1) == 1) # 过滤异常行,若不需要重置索引可删除.reset_index(drop=True)部分 df_clean = df[~is_noise].reset_index(drop=True)
补充说明
- 若需求是修正值而非删除行,可将过滤逻辑替换为
df.loc[is_noise, "wow"] = 1,即可把夹在1中间的0直接改为1 - 该逻辑仅命中仅间隔1个0的
1,0,1噪声序列,中间夹多个0的正常序列不会被误处理 - 处理后的数据行数会和你预期的500条有效数据行数匹配
内容的提问来源于stack exchange,提问作者Muhammad Naufal Taqi
相关产品推荐
相关产品推荐

