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

Python实现Excel多CellName列重复值提取及Result列新增并导出高频值

Python处理CellName列重复值及高频值导出

核心功能实现步骤

1. 提取所有CellName列并统计全局出现次数

先定位所有CellName相关列,合并后统计每个值的全局出现次数,作为后续判断重复和高频值的基础。

import pandas as pd

# 假设你的数据存储在DataFrame df中
# 提取所有CellName开头的列(可根据实际列名规则调整)
cell_columns = [col for col in df.columns if col.startswith('CellName')]
# 合并所有CellName列的数值为一个Series,自动忽略空值
all_cell_values = df[cell_columns].stack().dropna()
# 统计每个CellName的出现次数
cell_frequency = all_cell_values.value_counts()

2. 生成Result列(标记全局重复的CellName)

遍历每行数据,收集该行CellName列中属于全局重复(出现次数>1)的值,存入Result列。

# 筛选出全局重复的CellName集合
duplicate_cell_set = set(cell_frequency[cell_frequency > 1].index)

# 定义行处理逻辑,收集重复值并去重拼接
def extract_duplicate_cells(row):
    valid_cells = [cell for cell in row[cell_columns] if pd.notna(cell) and cell in duplicate_cell_set]
    return ','.join(set(valid_cells)) if valid_cells else None

# 新增Result列
df['Result'] = df.apply(extract_duplicate_cells, axis=1)

3. 导出出现次数大于10的CellName值

筛选出高频CellName,导出为CSV或Excel文件。

# 筛选出现次数>10的CellName,重置索引并命名列
high_frequency_cells = cell_frequency[cell_frequency > 10].reset_index()
high_frequency_cells.columns = ['CellName', 'Occurrence_Count']

# 导出到CSV文件
high_frequency_cells.to_csv('high_frequency_cell_names.csv', index=False)

# 若需导出到Excel,取消下方注释
# high_frequency_cells.to_excel('high_frequency_cell_names.xlsx', index=False)

优化提示

  • 若CellName列命名规则不是以CellName开头,需修改cell_columns的筛选条件匹配实际列名
  • 处理超大数据集时,可改用向量化操作替代apply提升效率:
    df['Result'] = df[cell_columns].apply(lambda x: ','.join(set(x[x.isin(duplicate_cell_set)].dropna())), axis=1)
    
  • Result列的分隔符可根据需求替换为分号、换行符等

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:18:10