Python获取指定日期是"星期几"的6种方法


Posted in Python onMarch 13, 2022

在Python进行数据分析时,按照日期进行分组汇总也是被需要的,比如会找到销量的周期性规律。

那么在用Python进行数据统计之前,就需要额外增加一步:从指定的日期当中获取星期几。比如2022年2月22日,还正好是正月廿二星期二,于是乎这一天登记结婚的人特别多。本文就以2022-02-22为例,演示Python获取指定日期是“星期几”的6种方法!

Python获取指定日期是"星期几"的6种方法

weekday()

datetime模块是一个Python内置库,无需再进行pip安装,它除了可以显示日期和时间之外,还可以进行日期和时间的运算以及格式化。

datetime模块中的方法weekday()可用于检索星期几,结果返回0-6之间的整数,用来代表“星期一”到“星期日”。

在交互式环境中输入如下命令:

from datetime import datetime
datetime.date(2022, 2, 22).weekday()

输出:

1

在代码中,datetime模块会先将由年、月和日组成的日期转换为datetime日期。然后weekday()方法获取“2022-02-22”这天是星期二。

但是根据我们国内的习惯,总不能直接输出1吧。所以我们可以先自定义一个包含中文“星期几”的列表,再通过索引的方式来返回一个中文的星期几。

在交互式环境中输入如下命令:

week_list = ["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]
week_list[datetime.date(2022, 2, 22).weekday()]

输出:

'星期二'

这样结果便是直接是星期二了。

isoweekday()

isoweekday()方法与前一个weekday()方法的工作原理类似,最大的区别是它返回1-7之间的整数,用来代表“星期一”到“星期日”。

在交互式环境中输入如下命令:

import datetime
datetime.date(2022, 2, 22).isoweekday()

输出:

2

这次输出的结果便直接是“星期2”了。

strftime()

如果你想直接输出日期的英文周名,不妨试试strftime()方法。

利用strftime()方法可以将datetime对象显示为字符串。我们其实对日期格式转化为字符串格式非常熟悉,比如strftime('%b-%m-%y %H:%M:%S'),只需将其中的指令改为%A,即可得到日期是星期几。

在交互式环境中输入如下命令:

import datetime
datetime.date(2022, 2, 22).strftime("%A")

输出:

'Tuesday'

如果将代码中的%A改为%a,则输出的是星期几的简写。

datetime.date(2022, 2, 22).strftime("%a")

输出:

'Tue'

calendar

在Python中calendar日历模块也是一个内置库,为我们对日历做处理提供了很多方法,使用起来非常方便,我们可以使用它制作日历/周历等等。同样,它也提供了weekday()day_name()方法来查询指定日期是星期几。

在交互式环境中输入如下命令:

import calendar
calendar.weekday(2022, 2, 22)

输出:

1

这与前文第一个方法的datetime模块weekday()方法是一模一样的。

如果你想直接输出日期的英文周名,calendar日历模块也有方法可以实现。

import datetime
import calendar

date_week = datetime.date(2022, 2, 22).weekday()
calendar.day_name[date_week]

输出:

'Tuesday'

pendulum

datetime模块也有一些限制,比如处理时区问题等等。而pendulum模块是这个第三方开源库,可以解决内置datetime模块的所有问题。

https://pypi.org/project/pendulum/

当然,它也有方法可以输出指定日期是星期几。

在交互式环境中输入如下命令:

import pendulum
pendulum.parse('2022-02-22').day_of_week

输出:

2

输出的结果直接是“星期2”。

Pandas

最后,最后,我要说一个自己最常用的方法。因为小五平时主要在Pandas中处理数据,那么生成“星期”列肯定会优先考虑Pandas中的方法。

Series.dt可用于以datetimelike的形式访问序列的值并返回几个属性。Series.dt.day_name()函数返回具有指定语言环境的DateTimeIndex的日期名称。

在交互式环境中输入如下命令:

import pandas as pd
from datetime import datetime

df = pd.DataFrame({
    "name": ["张三", "李四", "朱五"],
    "date": [datetime(2022, 2, 21), datetime(2022, 2, 22), datetime(2022, 2, 23)]})
df

输出如下图所示:

Python获取指定日期是"星期几"的6种方法

df["week_num1"] = df["date"].dt.dayofweek
df["week_num2"] = df["date"].dt.weekday
df["week_name"] = df["date"].dt.day_name()
df

输出如下图所示:

Python获取指定日期是"星期几"的6种方法

到此这篇关于Python获取指定日期是"星期几"的6种方法的文章就介绍到这了,更多相关Python指定日期内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现ftp客户端示例分享
Feb 17 Python
python里将list中元素依次向前移动一位
Sep 12 Python
python类继承用法实例分析
Oct 10 Python
Python使用正则匹配实现抓图代码分享
Apr 02 Python
利用Python批量生成任意尺寸的图片
Aug 29 Python
python3 pillow生成简单验证码图片的示例
Sep 19 Python
Python语言的变量认识及操作方法
Feb 11 Python
和孩子一起学习python之变量命名规则
May 27 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
Jan 19 Python
详解Python 重学requests发起请求的基本方式
Feb 07 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
Mar 02 Python
Python 图片处理库exifread详解
Feb 25 Python
Python+tkinter实现高清图片保存
Python中的 Set 与 dict
Mar 13 #Python
Python echarts实现数据可视化实例详解
分享3个非常实用的 Python 模块
Mar 03 #Python
详解在OpenCV中如何使用图像像素
 Python 中 logging 模块使用详情
Mar 03 #Python
分享7个 Python 实战项目练习
Mar 03 #Python
You might like
有关php运算符的知识大全
2011/11/03 PHP
thinkphp实现面包屑导航(当前位置)例子分享
2014/05/10 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
PHP验证信用卡卡号是否正确函数
2015/05/27 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
CI框架AR数据库操作常用函数总结
2016/11/21 PHP
PHP赋值的内部是如何跑的详解
2019/01/13 PHP
JavaScript网页制作特殊效果用随机数
2007/05/22 Javascript
jquery 应用代码 方便的排序功能
2010/02/06 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
javascript实现根据身份证号读取相关信息
2014/12/17 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
2016/01/28 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
2016/08/08 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
Javascript的动态增加类的实现方法
2016/10/20 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
基于layui table返回的值的多级嵌套的解决方法
2019/09/19 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
2019/12/12 Javascript
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
TensorFlow入门使用 tf.train.Saver()保存模型
2018/04/24 Python
Selenium 模拟浏览器动态加载页面的实现方法
2018/05/16 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
Python创建字典的八种方式
2019/02/27 Python
python pip源配置,pip配置文件存放位置的方法
2019/07/12 Python
Python中类似于jquery的pyquery库用法分析
2019/12/02 Python
汤米巴哈马官方网站:Tommy Bahama
2017/05/13 全球购物
Lookfantastic俄罗斯:欧洲在线化妆品零售商
2019/08/06 全球购物
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
优秀员工评优方案
2014/06/13 职场文书
2015年学校信息技术工作总结
2015/05/25 职场文书
nginx前后端同域名配置的方法实现
2021/03/31 Servers
Golang中interface{}转为数组的操作
2021/04/30 Golang