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循环语句之break与continue的用法
Oct 14 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
Nov 15 Python
Python判断以什么结尾以什么开头的实例
Oct 27 Python
对IPython交互模式下的退出方法详解
Feb 16 Python
Pycharm 字体大小调整设置的方法实现
Sep 27 Python
导入tensorflow时报错:cannot import name 'abs'的解决
Oct 10 Python
Python使用Pandas库常见操作详解
Jan 16 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
Mar 06 Python
Python引入多个模块及包的概念过程解析
Sep 21 Python
python 解决Windows平台上路径有空格的问题
Nov 10 Python
python中append函数用法讲解
Dec 11 Python
opencv python 对指针仪表读数识别的两种方式
Jan 14 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自动跳转中英文页面
2008/07/29 PHP
php 判断字符串中是否包含html标签
2014/02/17 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
PHP 生成N个不重复的随机数
2015/01/21 PHP
php实现mysql数据库分表分段备份
2015/06/18 PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
2015/11/05 PHP
php自定义函数实现JS的escape的方法示例
2016/07/07 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
PHP生成指定范围内的N个不重复的随机数
2019/03/18 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
2019/05/30 PHP
javascript处理table表格的代码
2010/12/06 Javascript
最新的10款jQuery内容滑块插件分享
2011/09/18 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
动态加载script文件的两种方法
2013/08/15 Javascript
禁止拷贝网页内容的js代码
2014/01/22 Javascript
Jquery $when done then的用法详解
2016/05/20 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
VUE DOM加载后执行自定义事件的方法
2018/09/07 Javascript
区别JavaScript函数声明与变量声明
2018/09/12 Javascript
浅谈高大上的微信小程序中渲染html内容—技术分享
2018/10/25 Javascript
详解jQuery中的getAll()和cleanData()
2019/04/15 jQuery
微信小程序wx.navigateTo方法里的events参数使用详情及场景
2020/01/07 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
2020/04/25 Javascript
Python利用ansible分发处理任务
2015/08/04 Python
用Python写王者荣耀刷金币脚本
2017/12/21 Python
对命令行模式与python交互模式介绍
2018/05/12 Python
Django添加feeds功能的示例
2018/08/07 Python
python实现同一局域网下传输图片
2020/03/20 Python
python学生管理系统的实现
2020/04/05 Python
免费获得微软MCSD证书赶快行动吧!
2012/11/13 HTML / CSS
美体小铺瑞典官方网站:The Body Shop瑞典
2018/01/27 全球购物
奠基仪式主持词
2014/03/20 职场文书
工厂采购员岗位职责
2014/04/08 职场文书
人身损害赔偿协议书范本
2014/09/27 职场文书
银行给客户的感谢信
2015/01/23 职场文书
SQL注入的实现以及防范示例详解
2021/06/02 MySQL