栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python pandas 怎么判断一天是否为工作日+计算距离特定时间之间的天数

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python pandas 怎么判断一天是否为工作日+计算距离特定时间之间的天数

本文实现:
①计算距离特定时间之间的天数。
②时间是否为工作日。

准备数据:
数据采用的是一个平台的登录数据,包含登录的时间。
任务的要求是:选取用户最近的登录时间,同时判断距2020,6,18的天数有多少天。
同时需要区分是否为工作日登录。

导入数据

# 作者:yunmen
# 日期:2021年10月20日
#导入模块
import pandas as pd
#判断节假日函数
from chinese_calendar import is_workday, is_holiday,is_in_lieu
data=pd.read_csv(r'C:UsersyunmenDesktoplogin.csv',sep=',',encoding='gbk')

①计算距离特定时间之间的天数。

将日期的数据格式进行转化

data['login_time']=pd.to_datetime(data['login_time'])

将dataframe进行按照用户ID进行分组,同时分组后的数据采用的是最大值(这样就可以实现:选取用户最近的登录时间)

tem_day=pd.to_datetime('2020-06-18 00:00:00 ' )
da=data.groupby('user_id').max()

计算计算距离2020,6,18的天数有多少天。

da['losing_day']=tem_day-da['login_time']
da['losing_day']=[i.days  for i in da['losing_day'].to_list()]

结果如下图:

②判断日期是否为工作日:
chinese_calendar模块的is_workday函数可以判断一天是否为工作日
#采用的测试数据为20210501-20210531

import pandas as pd
from chinese_calendar import is_workday

#采用的测试数据为20210501-20210531
date_one=pd.date_range('20210501','20210531')

a=pd.Dataframe()
a['date']=date_one
a['date'].map(lambda x:is_workday(x))
a['is_workday']=a['date'].map(lambda x:is_workday(x))


2021国务院发布的假期日安排:
劳动节:5月1日至5日放假调休,共5天。4月25日(星期日)、5月8日(星期六)上班。
和结果的2021.5.8日为True说明为工作日上班,与规定相符。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/339432.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号