Python学习笔记:计算平均打卡时间
苦命的打工人 Hider
每天上班都需要打卡,现在需要统计近一段时间内的平均打卡时间。
一、想法
- 第一想法:利用
mean
函数直接求平均,但实际得到的是所有时间的均值,并非时间的均值。 - 第二想法:将日期与时间进行拆分,只对时间求平均。
- 第三想法:求每一个时间与0点之间的时间差,求平均后,再加到0点上。
二、实操
- 测试数据
ts = '''
2020-10-28 09:59:44
2020-10-29 10:01:32
2020-10-30 10:04:27
2020-11-02 09:55:43
2020-11-03 10:05:03
2020-11-04 09:44:34
2020-11-05 10:10:32
2020-11-06 10:02:37
'''
- 实操脚本
import pandas as pd
from io import StringIO
df = pd.read_csv(StringIO(ts), names=['time'], parse_dates=['time'])
df.time.mean() # Timestamp('2020-11-02 04:00:31.500000')
df['time'].apply(lambda x: x.replace(year=2023, month=6, day=6)).mean()
df['time'].apply(pd.Timestamp.replace, year=2023, month=6, day=6).mean()
df['time'].agg(pd.Timestamp.replace, year=2023, month=6, day=6).mean()
# Timestamp('2023-06-06 10:00:31.500000')
StringIO
用于把字符串读入内存缓冲区
parse_dates
用于指定时间类型的列
直接替换为同一天的时间,再进行求平均操作。
参考链接:pandas 计算平均打卡上班时间
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2018-06-12 MySQL学习笔记:coalesce