看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)人事部从打卡系统导出 8 月员工考勤流水,同一天可能出现多次打卡,需保留最后一次:
import pandas as pd
df = pd.DataFrame({
"员工": ["张三", "李四", "张三", "王五", "李四", "张三"],
"日期": ["2024-08-01", "2024-08-01", "2024-08-01",
"2024-08-02", "2024-08-02", "2024-08-02"],
"打卡时间": ["08:30", "08:45", "09:00",
"08:40", "09:10", "09:15"]
})
df
'''
员工 日期 打卡时间
0 张三 2024-08-01 08:30
1 李四 2024-08-01 08:45
2 张三 2024-08-01 09:00
3 王五 2024-08-02 08:40
4 李四 2024-08-02 09:10
5 张三 2024-08-02 09:15
'''
用 一行 drop_duplicates()
完成:
并打印结果。
(
df.sort_values('打卡时间')
.drop_duplicates(subset=['员工', '日期'], keep='last')
.reset_index(drop=True)
)
'''
员工 日期 打卡时间
0 王五 2024-08-02 08:40
1 李四 2024-08-01 08:45
2 张三 2024-08-01 09:00
3 李四 2024-08-02 09:10
4 张三 2024-08-02 09:15
'''
(完)
更新时间:2025-08-21 18:31:17 标签:pandas python 去重 最新记录