计算打卡上班时间的平均时间(pandas、python)

某员工一段时间上班打卡的时间记录如下,现在需要计算他在这期间的平均打卡时间。

import pandas as pd
df=pd.DataFrame({'time':['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-3 10:05:03','2020-11-04 09:44:34','2020-11-05 10:10:32','2020-11-06 10:02:37'],
                })
df

首先,将数据转化为时间类型:

df=df.astype('datetime64[ns]')

df=df.astype('datetime64[ns]')

然后,对时间序列求平均:

df.time.mean()

df.time.mean()

'''
Timestamp('2020-11-02 04:00:31.500000')
'''

 我们发现,mean方法会对时间序列的时间戳求平均值,得出的值为11月2日凌晨4点,这和我们的需求不符,因为我们不需要关心具体哪天,只关注时间。

将日期归到同一天,再求平均时间。

方法一:用apply调用时间replace方法

df.time.apply(lambda s:s.replace(year=2020,month=1,day=1)).mean()

'''
Timestamp('2020-01-01 10:00:31.500000')
'''

方法二:直接用pandas的固定时间对象来调用

df.time.apply(pd.Timestamp.replace,year=2020,month=1,day=1).mean()

'''
Timestamp('2020-01-01 10:00:31.500000')
'''

方法三:用agg来调用函数

df.time.agg(pd.Timestamp.replace,year=2020,month=1,day=1).mean()

'''
Timestamp('2020-01-01 10:00:31.500000')
'''

得到了该员工平均的打卡时间。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值