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

考勤数据分析需求:打卡去重、时段统计及空值处理方案咨询

考勤大数据清洗与统计解决方案

针对10万+条考勤数据的清洗与统计需求,推荐以下两种高效解决方案:

方案一:Python Pandas 处理(高效适配大数据量)

Pandas 对结构化数据的处理效率远高于Excel函数,适合十万级以上数据量操作:

步骤1:数据读取与预处理

假设考勤数据包含员工ID、打卡日期、打卡时间、打卡类型(Clock-in/Clock-out)字段:

import pandas as pd

# 读取数据(支持Excel、CSV等格式)
df = pd.read_excel("考勤数据.xlsx")

# 删除空时间戳记录
df = df.dropna(subset=["打卡时间"])

# 合并日期与时间为完整datetime格式(方便后续分组)
df["完整打卡时间"] = pd.to_datetime(df["打卡日期"].astype(str) + " " + df["打卡时间"].astype(str))

步骤2:提取每日首次Clock-in与末次Clock-out

# 按员工ID、打卡日期、打卡类型分组,提取首/末记录
# 首次Clock-in:每组最早的时间
first_clockin = df[df["打卡类型"] == "Clock-in"].groupby(["员工ID", "打卡日期"])["完整打卡时间"].min().reset_index(name="首次打卡时间")
# 末次Clock-out:每组最晚的时间
last_clockout = df[df["打卡类型"] == "Clock-out"].groupby(["员工ID", "打卡日期"])["完整打卡时间"].max().reset_index(name="末次打卡时间")

# 合并首末打卡数据
cleaned_df = pd.merge(first_clockin, last_clockout, on=["员工ID", "打卡日期"], how="outer")

步骤3:统计不同时间区间的打卡人数

以上班打卡(首次Clock-in)为例,定义时间区间并统计:

# 提取打卡小时分钟部分,划分区间
cleaned_df["打卡时段"] = pd.cut(cleaned_df["首次打卡时间"].dt.time,
                              bins=[pd.to_datetime("00:00").time(), pd.to_datetime("08:00").time(),
                                    pd.to_datetime("08:30").time(), pd.to_datetime("23:59").time()],
                              labels=["8:00前", "8:00-8:30", "8:30后"])

# 统计各区间员工数量(按整体统计,如需按日期统计可添加日期分组)
result = cleaned_df.groupby("打卡时段")["员工ID"].nunique().reset_index(name="员工数量")
print(result)

若需统计下班打卡(末次Clock-out)的区间,替换首次打卡时间为末次打卡时间即可。

方案二:Excel Power Query 处理(适合Excel用户)

Power Query 是Excel内置的高效数据处理工具,无需复杂代码,处理10万条数据远快于COUNTIFS:

  1. 导入数据到Power Query:选中数据区域 → 「数据」选项卡 → 「从表格/范围」,进入Power Query编辑器。
  2. 删除空时间戳:选中「打卡时间」列 → 「开始」选项卡 → 「删除行」→ 「删除空值行」。
  3. 提取每日首末打卡:
    • 点击「转换」选项卡 → 「分组依据」,设置分组列为员工ID、打卡日期、打卡类型,操作选择「最小值」(对应Clock-in的首次)或「最大值」(对应Clock-out的末次),针对不同打卡类型分别分组后合并结果。
  4. 添加时间区间并统计:
    • 转换打卡时间为可计算格式,添加自定义列判断所属区间(示例公式:= if [首次打卡时间] < #time(8,0,0) then "8:00前" else if [首次打卡时间] < #time(8,30,0) then "8:00-8:30" else "8:30后")。
    • 回到Excel,用数据透视表按时间区间统计不同日期或整体的员工数量。

内容的提问来源于stack exchange,提问作者Likhona Matinjwa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 20:05:32