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

如何使用Python DataFrames替换Excel列中连续重复的数值类内容

实现方案

前置依赖安装

如果环境中缺少相关依赖,执行以下命令安装:

pip install pandas openpyxl numpy

代码实现

步骤1:导入依赖库

import pandas as pd
import numpy as np

步骤2:读取Excel数据

# 替换为你的本地Excel文件路径,sheet_name可指定要处理的工作表序号/名称
df = pd.read_excel("待处理文件.xlsx", sheet_name=0)

步骤3:定义单列表格处理逻辑

我们定义Numbered类数值为int、float类型且不属于布尔、字符串类型的值,仅将列中连续出现的该类数值替换为空值,保留所有文本、布尔类型内容不变:

def process_single_column(col):
    # 标记为需要保留的类型:布尔值、字符串
    to_keep = col.apply(lambda x: isinstance(x, (bool, str)))
    # 标记属于Numbered类的数值
    is_number_val = ~to_keep
    # 标记连续出现的Numbered类数值:当前值是数值,且同一列上一行也是数值
    consecutive_number = is_number_val & is_number_val.shift(1, fill_value=False)
    # 连续数值替换为空,其余内容保留
    return col.where(~consecutive_number, np.nan)

步骤4:批量处理所有列并导出结果

# 对所有列应用处理规则
processed_df = df.apply(process_single_column)
# 导出处理后的结果到新Excel文件
processed_df.to_excel("处理完成结果.xlsx", index=False)

规则调整说明

如果你对“连续出现的Numbered类数值”的判定规则有差异,可以修改consecutive_number的判定逻辑:

  • 如果需要替换连续重复的相同数值:修改为 consecutive_number = is_number_val & (col == col.shift(1, fill_value=False))
  • 如果需要把所有Numbered类数值都替换为空:直接修改返回逻辑为 return col.where(to_keep, np.nan)

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

相关产品推荐
方舟 Agent Plan

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

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