200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > python 节假日_Python区分工作日 周末 法定假日的方法

python 节假日_Python区分工作日 周末 法定假日的方法

时间:2023-10-11 16:05:43

相关推荐

python 节假日_Python区分工作日 周末 法定假日的方法

Python区分工作日、周末、法定假日的方法

-10-14 19:50:56 来源: 晴天小雨

0

摘要:工作中由于需要按工作日、周末的维度进行统计分析,故需要对给定的一段时间进行工作日、周末、法定假日的标记,对其解决方法进行记录,以便日后复用。

法定假日标记说明

法定假日的标记需要使用到第三方库,即workalendar

直接pip安装即可:pip install workalendar

需要注意是的,由于这个库的法定假日只是配置了今年,如果下年也要使用这个库,需要手动进行配置,或者查看官网是否进行对法定假日进行了更新,然后决定是否同步即可。

标记法定假日

from workalendar.asia import China

def cal_festival(year_list):

cal = China()

date_list = []

for year in year_list:

for x, v in cal.holidays(year):

date_list.append([str(x), v])

# 没有的收集的假日,手动添加

date_list.append(['-05-04', 'Labour Day Holiday'])

df = pd.DataFrame(data=date_list, columns=['date', 'festival'])

return df

标记工作日、周末

def date_to_week(start_time, end_time):

# 把时间列标准化时间格式

df = pd.DataFrame()

df['date'] = pd.date_range(start=start_time, end=end_time)

# 1-5表示工作日,6-7表示周末

df['day_of_week'] = df['date'].dt.dayofweek + 1

df['date'] = df['date'].map(lambda x: x.strftime('%Y-%m-%d'))

return df

标记工作日、周末,过滤法定假日

if __name__ == '__main__':

start_date = "-09-01"

end_date = "-09-30"

df_festival = cal_festival([])

date_festival_list = df_festival["date"].tolist()

df_date = date_to_week(start_date, end_date)

df_filter_date = df_date[~df_date["date"].isin(date_festival_list)].copy()

print(df_filter_date)

标记工作日、周末、法定假日

if __name__ == '__main__':

start_date = "-09-01"

end_date = "-09-30"

df_festival = cal_festival([])

df_date = date_to_week(start_date, end_date)

df_filter_date = pd.merge(df_date, df_festival, on=["date"], how="left")

print(df_filter_date)

收藏

已收藏取消收藏

登录发表你的评论

0条评论

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。