Python处理CSV文件:如何提取指定列含重复值的所有行
CSV文件Codes列重复值对应行提取方案
5800行、12列的数据规模很小,以下三种方案都可以快速实现需求,根据自己的使用习惯选择即可:
方案1:Excel/WPS 零代码实现
适合没有编程基础的用户,全程点鼠标操作:
- 将目标CSV文件导入表格软件,选中包含表头的全部数据区域
- 选中「Codes」整列,点击顶部菜单栏「开始」-「条件格式」-「突出显示单元格规则」-「重复值」,给所有重复的Codes单元格打上颜色标记
- 选中全量数据,点击顶部菜单栏「数据」-「筛选」,点击Codes列的筛选下拉按钮,选择按单元格颜色筛选,筛出的所有行就是Codes取值存在重复的对应行,可直接复制导出。
该方法会返回所有重复取值对应的全部行,不会默认保留第一行、遗漏前面的重复项。
方案2:Python+pandas 代码实现
适合需要定期处理同类数据、希望流程可复用的场景,代码量极小:
- 先安装依赖库,终端执行命令:
pip install pandas - 运行以下代码,替换成自己的文件路径即可:
import pandas as pd # 读取本地CSV,如果文件打开乱码可以把encoding参数改成gbk df = pd.read_csv("你的目标文件.csv", encoding="utf-8") # 提取Codes列所有重复值对应的行,keep=False是核心参数,确保不遗漏任何一条重复行 res = df[df.duplicated(subset=["Codes"], keep=False)] # 结果导出为新的CSV文件 res.to_csv("重复值对应行结果.csv", index=False, encoding="utf-8-sig")
方案3:系统命令行实现
适合不想安装额外大型软件、临时处理一次的场景,Windows用PowerShell、Mac/Linux用自带终端即可:
以Windows PowerShell为例,直接运行以下脚本,替换对应文件路径就能出结果:
# 读取原CSV文件 $source_data = Import-Csv -Path "你的目标文件.csv" # 统计所有出现次数≥2的Codes值 $duplicate_codes = $source_data | Group-Object Codes | Where-Object Count -ge 2 | Select-Object -ExpandProperty Name # 筛选对应行导出结果 $source_data | Where-Object Codes -in $duplicate_codes | Export-Csv "重复值对应行结果.csv" -Encoding UTF8 -NoTypeInformation
内容的提问来源于stack exchange,提问作者Marcos.MAlmeida
相关产品推荐
相关产品推荐

