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

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

weekday()

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

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

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

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

输出:

在代码中,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”了。

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)

输出:

这与前文第一个方法的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”。

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

输出如下图所示:

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

输出如下图所示:

在今天的文章中,我们一共介绍了从指定的日期当中获取星期几的6中方法。

希望我的分享对你有帮助,看到文末的小伙伴,麻烦给右下角点个赞再走吧~

“超全” Python获取某一日期是“星期几”的六种方法相关推荐

  1. 超全!Python获取某一日期是“星期几”的6种方法!

    在Python进行数据分析时,按照日期进行分组汇总也是被需要的,比如会找到销量的周期性规律. 那么在用Python进行数据统计之前,就需要额外增加一步:从指定的日期当中获取星期几.比如2022年2月2 ...

  2. 超全Python速查表登上GitHub热榜,标星4600+!(附链接)

    本文经AI新媒体量子位授权转载,转载请联系出处. 本文多资源,建议阅读5分钟. 本文为你分享一份超全Python速查表. 哪里不会,抄查哪里. GitHub上出现一份对Python用户非常友好的资源: ...

  3. Python获取前一天的日期,前一个月的第一天,前一个月的最后一天

    Python获取前一天的日期,前一个月的第一天,前一个月的最后一天 话不多说上代码 import datetime from dateutil.relativedelta import relativ ...

  4. Python获取当前时间日期

    Python获取当前时间日期 Python获取当前时间日期 一.时间日期基本介绍 二.时间日期类型–time模块 2.1 获取当前时间戳 2.2 将时间戳转化为标准时间日期格式 2.3 格式化时间 三 ...

  5. python获取内网IP和外网IP的方法

    1.获取内网IP 示例代码: import socket# 获取内网IP s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect( ...

  6. python获取屏幕文字_详解:四种方法教你对Python获取屏幕截图(PyQt , pyautogui)...

    前言: 今天为大家带来的内容是详解:四种方法教你对Python获取屏幕截图(PyQt , pyautogui)本文具有不错的参考意义,希望能够帮助到大家! Python获取电脑截图有多种方式,具体如下 ...

  7. c#日期转换周几_C#中获取任意日期为星期几三种方法分享

    摘要: 下文分享使用c#代码获取任意日期所属星期数的方法分享,如下所示: 实验环境:windows操作系统 方法1:使用dayofweek获取当前星期数,再进行相关转换 string[] DayWee ...

  8. python 获取昨天的日期_利用Python来实现报表的自动发送,解放你时间去做更有意思的事情...

    前言 在日常工作中你可能因为每天都被各种各样的数据数据报表搞得焦头烂额,老板的,运营的.产品的等等.而且大部分报表都是重复性的工作,这篇文章就是帮助大家如何用Python来实现报表的自动发送,解放你的 ...

  9. 使用python获取股票指定日期交易代码数据

    证券宝www.baostock.com是一个免费.开源的证券数据平台. 提供大量准确.完整的证券历史行情数据.上市公司财务数据等.         通过python API获取证券数据信息,满足量化交 ...

最新文章

  1. python生日提醒_python, 实现朋友家人年历生日自动提醒
  2. Android Service的绑定 基础概念篇
  3. 项目代码结构 Dao,Service,Controller,Util,Model 含义
  4. 介绍Python中的__future__模块
  5. begin.lydsy 入门OJ题库:1101、1102:那些四位数、那些四位数之二
  6. mybatis mapper.xml入参
  7. [APIO2016] 划艇(dp + 组合数 + 前缀和优化)
  8. SMSSMS垃圾邮件检测器的专业攻击
  9. 个人或结对项目 - 动态显示程序运算的过程
  10. 以系统化视角反观产品运营,解读提升用户转化的“四部曲”
  11. ajax传值controller怎么写,关于ajax请求Controller传值问题详细记录
  12. 利用before伪元素创建图标
  13. 全球人工智能发展白皮书
  14. 酷派android升级失败,酷派大神X7刷机失败变砖开不了机 救砖教程
  15. 电子技术部下半学期第一次培训
  16. 全面解决网站被攻击解决办法
  17. centos yum清华镜像
  18. win10查看计算机管理员,win10系统下怎么获取administrator管理员权限
  19. Javascript 实现一个分钟秒钟倒计时器
  20. UA OPTI501 电磁波 求解麦克斯韦方程组的Fourier方法1 在频域中讨论麦克斯韦方程组

热门文章

  1. SAI教程,真人照片转手绘
  2. 欧拉如何解决哥尼斯堡七桥问题(一)
  3. CBAM——即插即用的注意力模块(附代码)
  4. 移动硬盘怎么分区,硬盘分区教程学习
  5. php时间戳和时间转换
  6. bzoj 1050: [HAOI2006]旅行comf(并查集)
  7. 2014年北邮网研院复试上机题目
  8. 南大通用数据库-Gbase-8a-学习-17-Gbase8a集群版本升级
  9. 2019年分享几个有趣实用的福利给大家
  10. shell 创建临时目录和临时文件mktemp