python日期对照表_2020年日期表-python实现-程序员宅基地

技术标签: python日期对照表  

import pandas as pd

import calendar

import datetime

# 生成日期范围

date = pd.date_range("2020-01-01","2020-12-31",freq="D")

# 将日期转化为字符串

dt_str = [i.strftime("%Y%m%d") for i in date]

# 日期对应的星期(数值)

week = [int(i.strftime("%w")) for i in date] # 0表示星期日

# 日期对应的星期(中文)

week_desc = []

def week_desc_info():

for i in week:

if i == 0:

week_desc.append("星期天")

elif i == 1:

week_desc.append("星期一")

elif i == 2:

week_desc.append("星期二")

elif i == 3:

week_desc.append("星期三")

elif i == 4:

week_desc.append("星期四")

elif i == 5:

week_desc.append("星期五")

elif i == 6:

week_desc.append("星期六")

return week_desc

week_desc = week_desc_info()

# 月份(数值,01,02,...)

month = [i.strftime("%m") for i in date]

# 月份(中文)

month_desc = [str(i) + "月" for i in month]

# 季度(数值)

season = []

def season_desc_info():

for i in list(int(j) for j in month):

if i <= 3:

season.append(1)

elif i > 3 and i <= 6:

season.append(2)

elif i > 6 and i <= 9:

season.append(3)

elif i > 9 and i <= 12:

season.append(4)

return season

season = season_desc_info()

# 季度(中文)

season_desc = ["第" + str(i) + "季度" for i in season]

# 年份(数值)

year = [int(i.strftime("%Y")) for i in date]

# 年份(中文)

year_desc = [ str(i) + "年" for i in year]

# 一年中的第几天

date_seq = [int(i.strftime("%j")) for i in date]

# 一年中的第几周

week_seq = [int(i.strftime("%U")) + 1 for i in date]

# 是否周末

weekend_flag = []

def is_weekend_flag():

for i in week:

if i == 0 or i == 6:

weekend_flag.append(1)

else:

weekend_flag.append(0)

return weekend_flag

weekend_flag = is_weekend_flag()

# 是否月末

monend_flag = []

def is_month_lastday():

for i in date:

#获得当月一共有多少天(也就是最后一天的日期)

_,days_in_month = calendar.monthrange(i.year, i.month)

# 获取当天是当月中的第几天

day_of_month =int(i.strftime("%d"))

if day_of_month == days_in_month:

monend_flag.append(1)

else:

monend_flag.append(0)

return monend_flag

monend_flag = is_month_lastday()

# 节假日标识

holiday_tp = []

# 节假日名称

holiday_desc = []

def is_holiday_desc():

for i in dt_str:

if i == '20200101':

holiday_desc.append("元旦")

elif i in ('20200124','20200125','20200126','20200127','20200128','20200129','20200130'):

holiday_desc.append("春节")

elif i in ('20200404','20200405','20200406'):

holiday_desc.append("清明节")

elif i in ('20200501','20200502','20200503','20200504','20200505'):

holiday_desc.append("国际劳动节")

elif i in ('20200625','20200626','20200627'):

holiday_desc.append("端午节")

elif i in ('20201001'):

holiday_desc.append("中秋节/国庆节")

elif i in ('20201002','20201003','20201004','20201005','20201006','20201007','20201008'):

holiday_desc.append("国庆节")

else:

holiday_desc.append("非节假日")

return holiday_desc

holiday_desc = is_holiday_desc()

# 周末标识

weekend_desc = []

def is_weekend_desc():

for i in date:

date_str = i.strftime("%Y%m%d")

if date_str in ('20200119','20200201','20200426','20200509','20200628','20200927','20201010'):

weekend_desc.append("非周末")

else:

week_id = int(i.strftime("%w"))

if week_id in (0,6):

weekend_desc.append("周末")

else:

weekend_desc.append("非周末")

return weekend_desc

weekend_desc = is_weekend_desc()

# 月末标识

monend_desc = []

def is_monend_desc():

for i in monend_flag:

if i == 1:

monend_desc.append("月末")

else:

monend_desc.append("非月末")

return monend_desc

monend_desc = is_monend_desc()

# 旬(数值)

xun_id = []

def get_xun_id():

for i in date:

# 获取当天是当月中的第几天

day_of_month =int(i.strftime("%d"))

if day_of_month <= 10:

xun_id.append(1)

elif day_of_month > 10 and day_of_month <= 20:

xun_id.append(2)

else:

xun_id.append(3)

return xun_id

xun_id = get_xun_id()

# 旬(中文)

xun_desc = []

def get_xun_desc():

for i in xun_id:

if i == 1:

xun_desc.append("上旬")

elif i == 2:

xun_desc.append("中旬")

else:

xun_desc.append("下旬")

return xun_desc

xun_desc = get_xun_desc()

# 周(数值)

week_seq_id = []

def get_week_seq_id():

for i in date:

# 构造当前月的1号

first_day_of_month =datetime.date(i.year, i.month, 1)

# 一年中的第几周

end = int(i.strftime("%U")) + 1

begin = int(first_day_of_month.strftime("%U")) + 1

week_seq_id.append(end - begin + 1)

return week_seq_id

week_seq_id=get_week_seq_id()

# 周(中文)

week_seq_desc = []

def get_week_seq_desc():

for i in week_seq_id:

if i == 1:

week_seq_desc.append("第一周")

elif i == 2:

week_seq_desc.append("第二周")

elif i == 3:

week_seq_desc.append("第三周")

elif i == 4:

week_seq_desc.append("第四周")

elif i == 5:

week_seq_desc.append("第五周")

elif i == 6:

week_seq_desc.append("第六周")

else:

week_seq_desc.append("第七周")

return week_seq_desc

week_seq_desc = get_week_seq_desc()

# 构造日期维表

dataframe = pd.DataFrame({'date':dt_str,'week':week,'week_desc':week_desc,\

'month':month,'month_desc':month_desc,\

'season':season,'season_desc':season_desc,\

'year':year,'year_desc':year_desc,\

'date_seq':date_seq,'week_seq':week_seq,\

'weekend_flag':weekend_flag,'monend_flag':monend_flag,\

'holiday_desc':holiday_desc,\

'weekend_desc':weekend_desc,'monend_desc':monend_desc,\

'xun_id':xun_id,'xun_desc':xun_desc,\

'week_seq_id':week_seq_id,'week_seq_desc':week_seq_desc})

dataframe.to_excel('./data/date2020.xlsx',index=False)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39646021/article/details/110550260

智能推荐

Qt/C++开发经验小技巧206-210_设置插件的目录还可以通过在main函数最前面写 qputenv("path", qstring("%-程序员宅基地

文章浏览阅读1.5k次,点赞6次,收藏19次。有时候需要对文本进行分散对齐显示,相当于无论文字多少,尽可能占满整个空间平摊占位宽度,但是在对支持对齐方式的控件比如QLabel调用 setAlignment(Qt::AlignJustify | Qt::AlignVCenter) 设置分散对齐会发现没有任何效果,这个时候就要考虑另外的方式比如通过控制字体的间距来实现分散对齐效果。QString text = "测试分散对齐内容";//计算当前文本在当前字体下占用的宽度QFont font = ui->label->font();i._设置插件的目录还可以通过在main函数最前面写 qputenv("path", qstring("%1;%2").

数据结构预算法(六) 数组和矩阵(1)_构造一四行五列的二维数组-程序员宅基地

文章浏览阅读412次。数组:抽象数据类型:数组的操作:1.存值 get(index)2.取值 set(index, value)这两个操作定义了抽象数据类型arrayc++数组的索引,且数组时c++的标准数据结构行主映射和列主映射 :数组的应用需要将数组的元素序列化,按照一维排列,因为数组元素一次只能输出或者输入一个。因此必须确定一个输入输出的顺序(即映射关系)。不规则的..._构造一四行五列的二维数组

mac关闭向日葵客户端自启动的方法_mac sunloginclient_desktop 后台自动启动-程序员宅基地

文章浏览阅读5.5k次。自动装了远程控制工具->向日葵客户端后,虽然给我带来了便利,但是也给我带来了个困扰,每次开机,向日葵的客户端都会自启动,去官网问了客服和搜索了很多帖子,方法都不试用,最后经过很长一段时间的摸索,发现了正确的关闭方式。1、首先打开一个 访达窗口2、在访达窗口的右上角搜索框内, 输入:sunlogin 搜索 搜索到如下几个文件: com.oray.sunlogin.agent.plist com.oray.sunlogin.startup.plist ..._mac sunloginclient_desktop 后台自动启动

RabbitMQ-集群模式简介_rabbitmq有哪些集群模式-程序员宅基地

文章浏览阅读3.5k次。文章目录1. 主备模式2. 远程模式3. 镜像模式(现企业中常用模式)4. 多活模式(实现异地数据复制的主流模式)1. 主备模式主备模式:用在并发和数据量不高的情况下,主备模式也称为Warren模式。当主节点宕机时,备用节点会充当主节点的角色,提供服务。主备和主从的区别:主备模式:是读写都在主节点上,备用节点是不进行任何的读写操作的。主从模式:写在主节点,从节点提供读操作。H..._rabbitmq有哪些集群模式

让ubuntu18.04中python命令指向python3_ubuntu设置软链将python指向python3.6-程序员宅基地

文章浏览阅读2.4k次,点赞2次,收藏7次。发现新装的ubuntu18.04版本中默认安装了python3.6,位置是/usr/lib/python3.6。$python --version 显示没有$python3 --version 显示有3.6版本其实在/usr/lib目录下也有python2.7版本,不知道是没安装或没建立连接反正我的python显示没有该..._ubuntu设置软链将python指向python3.6

"border:0"与"border:none"的区别_border:none 以及 border:0 的区别-程序员宅基地

文章浏览阅读5.3k次。"border:0"与"border:none"的差异主要体现在性能差异和兼容差异。1.性能差异"border:0"表示把border定义为0px。虽然0px在页面上看不到,但浏览器会对border进行渲染,结果会得到一个0px的border。"border:none"表示把border定义为“无”,浏览器不会渲染它。简单来说:"border:0"需要占用内存,而"border:none&q_border:none 以及 border:0 的区别

随便推点

Sharding-Proxy——分库分表+读写分离_shardingproxy 分库分表+读写分离-程序员宅基地

文章浏览阅读1.1k次。一、简介sharding-proxy定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。 目前先提供MySQL/PostgreSQL版本,它可以使用任何兼容MySQL/PostgreSQL协议的访问客户端(如:MySQL Command Client, MySQL Workbench, Navicat等)操作数据,对DBA更加友好。向应用程序完全透明,可直接当做MySQL/PostgreSQL使用。适用于任何兼容MySQL/PostgreSQL协议的的客户端_shardingproxy 分库分表+读写分离

DWR介绍-程序员宅基地

文章浏览阅读299次。_dwr

java入门学习(十五)运算语句while do while_javawhile语句 - 奇怪的运算式-程序员宅基地

文章浏览阅读867次。欢迎来我的博客www.taomaipin.comwhile 翻译成中文就是“当…..时候”,其实它和for的中文意思一样,当条件成立时执行while中的代码块,那么while语句的的语法是:while(循环条件){循环体}语法说明:和if语句类似,如果不是用代码块的结构,则只有while后面的第一个语句是循环体语句。在该语法中,要求循环条件的类型为boolean类型,指循环成立_javawhile语句 - 奇怪的运算式

element-ui 关闭自动上传设置成手动上传_au-uplod设置了不自动上传-程序员宅基地

文章浏览阅读3.9k次。属性上加上一个:auto-upload="false"_au-uplod设置了不自动上传

OSSIM-新遥感 开源遥感_open source software image map-程序员宅基地

文章浏览阅读6.8k次。OSSIM(Open Source Software Image Map)是一个用于遥感、图像处理、地理信息系统、摄影测量领域的高性能软件。OSSIM作为一个成熟的开源软件库,其设计目的是为摄影测量与遥感软件包的开发人员提供一套整合的并且是最佳的方法及流程。 遥感技术广泛应用于环境监测、资源勘探、土地规划与利用、地图制图、灾害动态监测、 农作物估产、气象预报等领域,对经济和社会发展有着重大的影_open source software image map

LTE上行物理层传输机制(4)-UCI在PUCCH和PUSCH中的传输_lte上行pusch pucch-程序员宅基地

文章浏览阅读3.7w次,点赞20次,收藏125次。1.什么是UCI在下行物理信道中存在着PDCCH控制信道,根据其中承载信息的不同,携带着各种不同的DCI格式,比如DCI0、DCI1A等等,那么在上行物理信道中也存在着类似的控制信道,我们叫做PUCCH(Physical Uplink Control Channel)信道。同样根据承载信息的不同,PUCCH可以携带各种不同的UCI(Uplink Control Information)。与下行DC_lte上行pusch pucch

推荐文章

热门文章

相关标签