如何使用Pandas统计Excel工作表中特定姓名的出现次数
高效统计Excel中技术人员预约次数的方案
针对你200名技术人员、2000条预约记录的场景,以下两种方案比COUNTIF()高效得多:
方案一:用Python + Pandas批量处理
Pandas是专门处理表格数据的工具,处理这类计数需求秒级完成,且可重复复用。
步骤:
- 先安装依赖库(终端执行):
pip install pandas openpyxl
- 编写代码(修改文件路径和工作表名即可):
import pandas as pd # 读取预约数据的姓名列 df = pd.read_excel("你的预约文件.xlsx", sheet_name="预约记录", usecols=["姓名"]) # 统计每个姓名的出现次数 count_df = df["姓名"].value_counts().reset_index() count_df.columns = ["技术人员姓名", "预约次数"] # 输出结果到控制台,或保存为新Excel文件 print(count_df) count_df.to_excel("预约次数统计结果.xlsx", index=False)
进阶:仅统计指定技术人员名单内的人员
如果需要排除名单外的姓名,可先读取人员名单再筛选:
# 读取技术人员名单 staff_names = pd.read_excel("你的预约文件.xlsx", sheet_name="人员名单", usecols=["姓名"])["姓名"].tolist() # 筛选名单内的记录并统计 filtered_data = df[df["姓名"].isin(staff_names)] count_df = filtered_data["姓名"].value_counts().reset_index() count_df.columns = ["技术人员姓名", "预约次数"]
方案二:用Excel内置Power Query可视化处理
无需编程,通过Excel自带的Power Query工具批量完成,适合不熟悉代码的用户:
- 选中预约数据的姓名列(含表头),点击「数据」选项卡 → 「从表格/区域」(旧版Excel找「获取和转换」组的对应选项);
- 在Power Query编辑器中,选中姓名列,点击「转换」选项卡 → 「分组依据」;
- 在弹出的对话框中设置:
- 分组依据:选择「姓名」
- 新列名:输入「预约次数」
- 操作:选择「计数行」
- 点击「确定」后,选择「关闭并上载」,统计结果会自动生成在新工作表中。
优势对比
COUNTIF()需要逐个单元格设置公式,手动操作量极大且计算效率低;- 上述两种方案均为批量处理,2000条数据几乎瞬间完成,且可重复使用(修改数据源即可)。
内容的提问来源于stack exchange,提问作者Emanuele Mazzetti
相关产品推荐
相关产品推荐

