教你怎么用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中使用enumerate函数遍历元素实例
Jun 16 Python
详解Python编程中包的概念与管理
Oct 16 Python
回调函数的意义以及python实现实例
Jun 20 Python
Python中装饰器兼容加括号和不加括号的写法详解
Jul 05 Python
Python中super函数的用法
Nov 17 Python
python数据分析数据标准化及离散化详解
Feb 26 Python
python 用所有标点符号分隔句子的示例
Jul 15 Python
Django之模板层的实现代码
Sep 09 Python
python3.7将代码打包成exe程序并添加图标的方法
Oct 11 Python
Python基础之函数原理与应用实例详解
Jan 03 Python
Python和Bash结合在一起的方法
Nov 13 Python
python“静态”变量、实例变量与本地变量的声明示例
Nov 13 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/10/09 PHP
PHP提取中文首字母
2008/04/09 PHP
php 向访客和爬虫显示不同的内容
2009/11/09 PHP
PHP垃圾回收机制引用计数器概念分析
2013/06/24 PHP
PHP 实现的将图片转换为TXT
2015/10/21 PHP
thinkphp实现分页显示功能
2016/12/03 PHP
html下载本地
2006/06/19 Javascript
jquery $.ajax入门应用一
2008/11/19 Javascript
js鼠标左右键 键盘值小结
2010/06/11 Javascript
在jQuery 1.5中使用deferred对象的代码(翻译)
2011/03/10 Javascript
js循环改变div颜色具体方法
2013/06/25 Javascript
js取float型小数点后两位数的方法
2014/01/18 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
基于jquery css3实现点击动画弹出表单源码特效
2015/08/31 Javascript
jQuery EasyUI API 中文帮助文档和扩展实例
2016/08/01 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
vue-router路由简单案例介绍
2017/02/21 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
VueJs监听window.resize方法示例
2018/01/17 Javascript
python 返回列表中某个值的索引方法
2018/11/07 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
基于python爬取梨视频实现过程解析
2020/11/09 Python
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
xml有哪些解析技术?区别是什么
2016/04/26 面试题
类的核心特性有哪些
2014/01/01 面试题
迟到检讨书800字
2014/01/13 职场文书
企业道德讲堂实施方案
2014/03/19 职场文书
社区服务活动总结
2014/05/07 职场文书
白莲教口号
2014/06/18 职场文书
产品陈列协议书(标准版)
2014/09/17 职场文书
专业见习报告范文
2014/11/03 职场文书
2015年实习生工作总结报告
2015/04/28 职场文书
利用Selenium添加cookie实现自动登录的示例代码(fofa)
2021/05/08 Python
Python实现的扫码工具居然这么好用!
2021/06/07 Python
SQL Server使用导出向导功能
2022/04/08 SQL Server