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 计算平均打卡上班时间

posted @   Hider1214  阅读(233)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2018-06-12 MySQL学习笔记:coalesce
点击右上角即可分享
微信分享提示