如何识别表格重复记录并为每条记录添加对应重复值的全表计数列
按姓氏统计全表重复次数并新增列的操作方法
计数逻辑完全匹配给定样例:bush全表共出现2次,trump共出现3次,Monk共出现1次,生成的Count列会给同一姓氏下的所有行绑定对应总次数,最终输出包含名、姓氏、重复次数三列的标准结果表。
SQL 通用实现
支持窗口函数的SQL环境可直接在原表行上附加计数结果,无需额外关联:
SELECT `First Name`, `Family Name`, COUNT(`Family Name`) OVER (PARTITION BY `Family Name`) AS `Count` FROM 原始数据表
如果使用的SQL版本不支持窗口函数,可通过分组子查询关联实现相同效果:
SELECT t1.`First Name`, t1.`Family Name`, t2.`Count` FROM 原始数据表 t1 INNER JOIN ( SELECT `Family Name`, COUNT(*) AS `Count` FROM 原始数据表 GROUP BY `Family Name` ) t2 ON t1.`Family Name` = t2.`Family Name`
Pandas 脚本实现
数据处理脚本场景下,用分组变换方法可以一步生成目标计数列:
import pandas as pd # 读取原始数据表 df = pd.read_excel("原始数据表路径.xlsx") # 按姓氏分组计数,将结果匹配回每一行 df["Count"] = df.groupby("Family Name")["Family Name"].transform("count")
Excel 手工实现
如果原表A列为名、B列为姓氏,从第2行开始为有效数据:
- 在C2单元格输入统计公式:
=COUNTIF(B:B, B2) - 下拉公式覆盖所有数据行,将C列表头设置为「Count」即可得到最终结果
内容的提问来源于stack exchange,提问作者user13949321
相关产品推荐
相关产品推荐

