教你怎么用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 相关文章推荐
python中lambda与def用法对比实例分析
Apr 30 Python
详解Python中的元组与逻辑运算符
Oct 13 Python
python使用fcntl模块实现程序加锁功能示例
Jun 23 Python
Python对多属性的重复数据去重实例
Apr 18 Python
基于python的图片修复程序(实现水印去除)
Jun 04 Python
python与caffe改变通道顺序的方法
Aug 04 Python
python 保存float类型的小数的位数方法
Oct 17 Python
Python标准库使用OrderedDict类的实例讲解
Feb 14 Python
详解PANDAS 数据合并与重塑(join/merge篇)
Jul 09 Python
离线状态下在jupyter notebook中使用plotly实例
Apr 24 Python
使用keras实现非线性回归(两种加激活函数的方式)
Jul 05 Python
安装Anaconda3及使用Jupyter的方法
Oct 27 Python
pandas中DataFrame重置索引的几种方法
May 24 #Python
pandas取dataframe特定行列的实现方法
pytorch 如何使用amp进行混合精度训练
只需要这一行代码就能让python计算速度提高十倍
pytorch 如何使用float64训练
pytorch 使用半精度模型部署的操作
May 24 #Python
解决Pytorch半精度浮点型网络训练的问题
May 24 #Python
You might like
浅析PHP微信支付通知的处理方式
2014/05/25 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
小型js框架veryide.librar源代码
2009/03/05 Javascript
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
jquery中的 $("#jb51")与document.getElementById("jb51") 的区别
2011/07/26 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
2015/11/03 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
2016/05/12 Javascript
Js实现京东无延迟菜单效果实例(demo)
2017/06/02 Javascript
vue实现图书管理demo详解
2017/10/17 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
VUE 实现复制内容到剪贴板的两种方法
2019/04/24 Javascript
详解微信小程序调用支付接口支付
2019/04/28 Javascript
7个好用的JavaScript技巧分享(译)
2019/05/07 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
Python3基础之函数用法
2014/08/13 Python
python处理两种分隔符的数据集方法
2018/12/12 Python
京东港澳售:京东直邮港澳台
2018/01/31 全球购物
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
英国领先的在线礼品店:Getting Personal
2019/09/24 全球购物
一些高难度的SQL面试题
2016/11/29 面试题
实习单位接收函模板
2014/01/10 职场文书
语文教学感言
2014/02/06 职场文书
实习生求职自荐信
2014/02/07 职场文书
学生个人自我鉴定
2014/03/26 职场文书
校庆活动策划方案
2014/06/05 职场文书
小学学校门卫岗位职责
2014/08/03 职场文书
金融保险专业求职信
2014/09/03 职场文书
教师师德师风个人整改方案
2014/09/18 职场文书
单位政审意见范文
2015/06/04 职场文书
小学入学感言
2015/08/01 职场文书
小学班级标语口号大全
2015/12/26 职场文书
适合毕业生创业的项目怎么找?
2019/08/08 职场文书
聊一聊python常用的编程模块
2021/05/14 Python
中国十大神话动漫电影排行榜 哪吒登顶 白蛇缘起排第七
2022/03/21 国漫
详解Python flask的前后端交互
2022/03/31 Python