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

如何在Python中合并相同值行的列(附考勤表格示例)

用Python合并考勤表格中同一姓名的记录

可以使用Python的pandas库快速实现需求,它是处理表格数据的常用工具,步骤如下:

步骤1:准备数据

如果你的数据来自Excel/CSV文件,直接用pandas读取;如果是手动构造示例数据,可参考如下代码:

import pandas as pd

# 构造示例数据(替换成你实际的读取代码)
attendance_data = [
    ["Alif", "100061", "17/12/2022 07:53:26", "", "指纹"],
    ["Alif", "100061", "17/12/2022 13:00:25", "", "指纹"],
    ["Alif", "100061", "19/12/2022 07:54:59", "", "指纹"],
    ["Alif", "100061", "19/12/2022 16:18:14", "", "指纹"],
    ["Alif", "100061", "20/12/2022 07:55:54", "", "指纹"],
    ["Alif", "100061", "20/12/2022 16:16:16", "", "指纹"],
    ["Alif", "100061", "21/12/2022 07:54:46", "", "指纹"],
    ["Alif", "100061", "21/12/2022 16:15:41", "", "指纹"],
    ["Alif", "100061", "22/12/2022 07:55:54", "", "指纹"],
    ["Alif", "100061", "22/12/2022 16:15:59", "", "指纹"],
    ["Alif", "100061", "23/12/2022 07:56:26", "", "指纹"],
    ["Alif", "100061", "23/12/2022 16:16:56", "", "指纹"],
    ["budi", "100063", "17/12/2022 07:45:28", "", "指纹"],
    ["budi", "100063", "17/12/2022 13:00:23", "", "指纹"],
    ["budi", "100063", "19/12/2022 07:39:29", "", "指纹"],
    ["budi", "100063", "19/12/2022 16:17:37", "", "指纹"],
    ["budi", "100063", "20/12/2022 13:13:06", "", "指纹"],
    ["budi", "100063", "20/12/2022 16:16:14", "", "指纹"],
    ["budi", "100063", "21/12/2022 07:39:54", "", "指纹"],
    ["budi", "100063", "21/12/2022 16:15:38", "", "指纹"],
    ["budi", "100063", "22/12/2022 07:39:02", "", "指纹"],
    ["budi", "100063", "22/12/2022 16:15:55", "", "指纹"],
    ["budi", "100063", "23/12/2022 07:41:13", "", "指纹"],
    ["budi", "100063", "23/12/2022 16:16:25", "", "指纹"]
]

df = pd.DataFrame(attendance_data, columns=["姓名", "身份证号", "日期/时间", "PIN码", "验证方式"])

如果是读取文件:

# 读取Excel文件
df = pd.read_excel("你的考勤文件.xlsx")
# 读取CSV文件
df = pd.read_csv("你的考勤文件.csv")

步骤2:分组合并记录

通过groupby按姓名分组,然后对不同列做聚合处理:

  • 身份证号、PIN码、验证方式:同一人数据一致,取第一条记录即可
  • 日期/时间:将所有记录用换行(或其他分隔符)拼接在一起
# 分组聚合
merged_df = df.groupby("姓名", as_index=False).agg({
    "身份证号": "first",
    "日期/时间": "\n".join,  # 用换行分隔,也可替换成"; "等其他分隔符
    "PIN码": "first",
    "验证方式": "first"
})

步骤3:查看或导出结果

打印合并后的表格:

print(merged_df)

如果需要导出为Markdown格式表格(方便分享):

print(merged_df.to_markdown(index=False))

导出为Excel文件:

merged_df.to_excel("合并后的考勤数据.xlsx", index=False)

示例输出

合并后的Markdown表格如下:

姓名身份证号日期/时间PIN码验证方式
Alif10006117/12/2022 07:53:26
17/12/2022 13:00:25
19/12/2022 07:54:59
...
指纹
budi10006317/12/2022 07:45:28
17/12/2022 13:00:23
19/12/2022 07:39:29
...
指纹

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 04:45:35