教你怎么用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中的列表推导浅析
Apr 26 Python
状态机的概念和在Python下使用状态机的教程
Apr 11 Python
Python学习小技巧之列表项的拼接
May 20 Python
Django使用详解:ORM 的反向查找(related_name)
May 30 Python
基于pandas将类别属性转化为数值属性的方法
Jul 25 Python
解决python os.mkdir创建目录失败的问题
Oct 16 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
Nov 06 Python
pandas 透视表中文字段排序方法
Nov 16 Python
PYTHON实现SIGN签名的过程解析
Oct 28 Python
python print 格式化输出,动态指定长度的实现
Apr 12 Python
如何快速理解python的垃圾回收机制
Sep 01 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
Nov 30 Python
pandas中DataFrame重置索引的几种方法
May 24 #Python
pandas取dataframe特定行列的实现方法
pytorch 如何使用amp进行混合精度训练
只需要这一行代码就能让python计算速度提高十倍
pytorch 如何使用float64训练
pytorch 使用半精度模型部署的操作
May 24 #Python
解决Pytorch半精度浮点型网络训练的问题
May 24 #Python
You might like
phpExcel中文帮助手册之常用功能指南
2014/08/18 PHP
php中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
PHP合并数组的2种方法小结
2016/11/24 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
多浏览器兼容性比较好的复制到剪贴板的js代码
2011/10/09 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
js中document.write的那点事
2014/12/12 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
2015/07/21 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
2015/08/06 Javascript
基于jQuery实现的菜单切换效果
2015/10/16 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
JavaScript提高网站性能优化的建议(二)
2016/07/24 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
2016/12/14 Javascript
JavaScript mixin实现多继承的方法详解
2017/03/30 Javascript
详解Vue 普通对象数据更新与 file 对象数据更新
2017/04/26 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
[04:27]DOTA2官方论坛水友赛集锦
2013/09/16 DOTA
[43:47]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第一场 12.09
2020/12/11 DOTA
ansible作为python模块库使用的方法实例
2017/01/17 Python
python 接口_从协议到抽象基类详解
2017/08/24 Python
Python通过属性手段实现只允许调用一次的示例讲解
2018/04/21 Python
python模拟登陆,用session维持回话的实例
2018/12/27 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
2019/11/26 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
用python实现一个简单计算器(完整DEMO)
2020/10/14 Python
MoviePy常用剪辑类及Python视频剪辑自动化
2020/12/18 Python
详解HTML5中div和section以及article的区别
2015/07/14 HTML / CSS
Soft Cotton捷克:来自爱琴海棉花的浴袍
2017/02/01 全球购物
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
英文留学推荐信范文
2014/01/25 职场文书
小学生获奖感言范文
2014/02/02 职场文书
汽车机电维修工求职信
2014/09/30 职场文书
项目备案申请报告
2015/05/15 职场文书
导游词之镇江西津古渡
2019/11/06 职场文书
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript