教你怎么用python实现字符串转日期


Posted in Python onMay 24, 2021

一、生成日期数据

import pandas as pd
pd.date_range( )

同生成随机数的思想类似,使用pandas库中的函数

pd.date_range(start=None,end=None,periods=None,freq=None,tz=None,normalize=False,name=None,close=None,**kwargs)

1.1 设定开始时间、长度、频率

start_date='20200101'
length=10
date_1=pd.date_range(start=start_date,periods=10).tolist()  #默认freq为D,每天
date_1

教你怎么用python实现字符串转日期

也可以设置频率freq=‘M'

date_1=pd.date_range(start=start_date,periods=10,freq='M')

教你怎么用python实现字符串转日期

1.2 设定起始、终止时间、频率

start_date='20200101'
end_date='20200110'
date_2=pd.date_range(start=start_date,end=end_date,freq='D')  #默认为D
date_2

教你怎么用python实现字符串转日期

频率freq的设置有:

D --- Day --- 每日
B --- BusinessDay --- 每工作日
H --- Hour --- 每小时
T/min --- Minute ---每分钟
S --- Second --- 每秒
M --- MonthEnd --- 每月最后一个日历日
Q --- Quater --- 每季度

注意上面生成的日期数据,就是list格式,在构建数据框时可以直接用。

pd.DataFrame({'Time':date_1})

教你怎么用python实现字符串转日期

二、字符串转化为日期

导入数据时常会出现,日期型数据导入后,变成字符串格式,在后续使用时,需要转化为日期。

构造一个时间数据

date_list1=pd.date_range(start=start_date,periods=gap).strftime('%Y%m%d').tolist()   
num1=np.random.randint(1,101,100)   #生成1-101的随机整数
num2=np.random.randint(100,201,100)
df_temp=pd.DataFrame({'Time':date_list1,
                     'Number1':num1,
                     'Number2':num2})
df_temp.head()

教你怎么用python实现字符串转日期

上面数据构造时,为了方便之后举例子,将生成的时间数据转化为字符串后,构造的数据框。

2.1 pd.to_datetime()

print(df_temp['Time'].dtype)
print(pd.to_datetime(df_temp['Time']).dtype)

输出:

object
datetime64[ns]

pd.datetime这个函数可以直接作用在数据框的列上面,直接转换。

2.2 datetime.strptime

注意区分:

from datetime import datetime
datetime.strftime() #由日期格式转化为字符串
datetime.strptime()  #由字符串格式转化为日期

例子:

print(datetime.strptime('20200101','%Y%m%d'))

print(datetime.strptime('2020-01-01','%Y-%m-%d'))

输出:

2020-01-01 00:00:00
2020-01-01 00:00:00

但是这个函数只能作用一个值,如果对数据框的列进行操作,需要首先定义一个函数:

from datetime import datetime
def date_ch(value):
    return datetime.strptime(value,'%Y%m%d')

print(date_ch('20200812'))
df_temp['Time']=df_temp['Time'].apply(date_ch)
df_temp['Time']

教你怎么用python实现字符串转日期

三、从日期数据中提取成分

3.1 直接提取:

pd.to_datetime('20200307').month

#year:日
#month:月
#week:周
#day:日

输出:

3

3.2 使用strftime函数:

pd.to_datetime('20200101').strftime('%Y-%m')

输出:

‘2020-01'

3.3 字符串切片截取

数据如下:

教你怎么用python实现字符串转日期

def date_ch(value):
    str_value=value.strftime('%Y-%m-%d')
    month=str_value[5:7]
    return month
df_temp['Time'].apply(date_ch)
#或者
#df_temp['Time'].apply(lambda x:date_ch(x))

教你怎么用python实现字符串转日期

strftime函数提取日期成分中,日期的标准化格式符号:

%a  星期的简写。如 星期三为Web
%A  星期的全写。如 星期三为Wednesday
%b  月份的简写。如4月份为Apr
%B  月份的全写。如4月份为April 
%c:  日期时间的字符串表示。(如: 05/01/10 09:00:20)
%d:  日在这个月中的天数
%f:  微秒(范围[0,999999])
%H:  小时(24小时制,[0, 23])
%I:  小时(12小时制,[0, 11])
%j:  日在年中的天数 [001,366]
%m:  月份([01,12])
%M:  分钟([00,59])
%p:  AM或者PM
%S:  秒(范围为[00,61])
%U:  周在当年的周数当年的第几周),星期天作为周的第一天
%w:  今天在这周的天数,范围为[0, 6],6表示星期天
%W:  周在当年的周数,星期一作为周的第一天
%x:  日期字符串(如:05/01/20)
%X:  时间字符串(如:09:00:20)
%y:  2个数字表示的年份
%Y:  4个数字表示的年份
%z:  与utc时间的间隔 (如果是本地时间,返回空字符串)
%Z:  时区名称(如果是本地时间,返回空字符串)

到此这篇关于教你怎么用python实现字符串转日期的文章就介绍到这了,更多相关python字符串转日期内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
使用wxPython获取系统剪贴板中的数据的教程
May 06 Python
详解Python中的日志模块logging
Jun 19 Python
Django中模版的子目录与include标签的使用方法
Jul 16 Python
Python计算已经过去多少个周末的方法
Jul 25 Python
python批量添加zabbix Screens的两个脚本分享
Jan 16 Python
Python的装饰器使用详解
Jun 26 Python
Python实现注册登录系统
Aug 08 Python
Python基于回溯法子集树模板实现图的遍历功能示例
Sep 05 Python
分享给Python新手们的几道简单练习题
Sep 21 Python
Python Numpy 数组的初始化和基本操作
Mar 13 Python
python 实现12bit灰度图像映射到8bit显示的方法
Jul 08 Python
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
Jun 11 Python
pandas中DataFrame重置索引的几种方法
May 24 #Python
pandas取dataframe特定行列的实现方法
pytorch 如何使用amp进行混合精度训练
只需要这一行代码就能让python计算速度提高十倍
pytorch 如何使用float64训练
pytorch 使用半精度模型部署的操作
May 24 #Python
解决Pytorch半精度浮点型网络训练的问题
May 24 #Python
You might like
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
针对PHP开发安全问题的相关总结
2019/03/22 PHP
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
2009/11/24 Javascript
比较搞笑的js陷阱题
2010/02/07 Javascript
jquery 弹出层注册页面等(asp.net后台)
2010/06/17 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
jQuery Ajax使用FormData对象上传文件的方法
2016/09/07 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
浅谈微信页面入口文件被缓存解决方案
2018/09/29 Javascript
从vue源码看props的用法
2019/01/09 Javascript
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
2019/04/19 Javascript
如何实现一个简易版的vuex持久化工具
2019/09/11 Javascript
详解javascript中var与ES6规范中let、const区别与用法
2020/01/11 Javascript
[02:45]2016年中国刀塔全程回顾,完美“圣”典即将上演
2016/12/15 DOTA
Python处理文本文件中控制字符的方法
2017/02/07 Python
python里使用正则表达式的组嵌套实例详解
2017/10/24 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
2019/11/21 Python
Aveda美国官网:天然护发产品、洗发水、护发素和沙龙
2016/12/09 全球购物
古驰英国官网:GUCCI英国
2020/03/07 全球购物
保安部任务及岗位职责
2014/02/25 职场文书
2014年乡镇植树节活动方案
2014/02/28 职场文书
要账委托书范本
2014/09/15 职场文书
大一工商管理职业生涯规划:有梦最美,行动相随
2014/09/18 职场文书
运动会稿件100字
2014/09/24 职场文书
学位证书委托书
2014/09/30 职场文书
党员批评与自我批评发言稿
2014/10/14 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
盘点2020年适合农村地区创业的项目
2019/10/16 职场文书
golang中的空接口使用详解
2021/03/30 Python
nginx location优先级的深入讲解
2021/03/31 Servers
Python基础教程,Python入门教程(超详细)
2021/06/24 Python
JavaScript 对象创建的3种方法
2021/11/17 Javascript