教你怎么用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实现sublime3的less编译插件示例
Apr 27 Python
django接入新浪微博OAuth的方法
Jun 29 Python
Python中set与frozenset方法和区别详解
May 23 Python
django基础之数据库操作方法(详解)
May 24 Python
简单实现python进度条脚本
Dec 18 Python
完美解决在oj中Python的循环输入问题
Jun 25 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
Oct 21 Python
CentOS下Python3的安装及创建虚拟环境的方法
Nov 28 Python
实例介绍Python中整型
Feb 11 Python
python离线安装外部依赖包的实现
Feb 13 Python
Python实现Wordcloud生成词云图的示例
Mar 30 Python
Python开发五子棋小游戏
May 02 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初学者头痛的十四个问题
2006/07/12 PHP
使用php+apc实现上传进度条且在IE7下不显示的问题解决方法
2013/04/25 PHP
php中引用符号(&)的使用详解
2013/11/13 PHP
浅析php-fpm静态和动态执行方式的比较
2016/11/09 PHP
Thinkphp实现站点静态化的方法详解
2017/03/21 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
浅谈jQuery事件绑定原理
2015/01/02 Javascript
再谈JavaScript线程
2015/07/10 Javascript
Nodejs抓取html页面内容(推荐)
2016/08/11 NodeJs
详解能在多种前端框架下使用的表格控件
2017/01/11 Javascript
js实现左右两侧浮动广告
2018/07/09 Javascript
详解Angularjs 自定义指令中的数据绑定
2018/07/19 Javascript
微信小程序实现动态列表项的顺序加载动画
2019/07/25 Javascript
Vue使用自定义指令实现拖拽行为实例分析
2020/06/06 Javascript
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
vue iview 隐藏Table组件里的某一列操作
2020/11/13 Javascript
[01:02:53]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第二局
2016/03/06 DOTA
[04:31]2016国际邀请赛中国区预选赛妖精采访
2016/06/27 DOTA
Tensorflow卷积神经网络实例
2018/05/24 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
python编辑用户登入界面的实现代码
2018/07/16 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
django为Form生成的label标签添加class方式
2020/05/20 Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
2021/01/13 Python
美国户外运动商店:Sun & Ski
2018/08/23 全球购物
全球性的在线婚纱礼服工厂:27dress.com
2019/03/21 全球购物
linux面试题参考答案(8)
2015/08/11 面试题
GWebs公司笔试题
2012/05/04 面试题
护理专业推荐信
2013/11/07 职场文书
2014两会学习心得:时代的发展
2014/03/17 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
亲情作文之母爱
2019/09/25 职场文书
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS