教你怎么用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 23 Python
简单介绍Python中的try和finally和with方法
May 05 Python
Python中subprocess模块用法实例详解
May 20 Python
python实现mysql的单引号字符串过滤方法
Nov 14 Python
详解Python3.6安装psutil模块和功能简介
May 30 Python
使用python绘制3维正态分布图的方法
Dec 29 Python
Python Flask 搭建微信小程序后台详解
May 06 Python
Python基础学习之函数方法实例详解
Jun 18 Python
python使用matplotlib绘制雷达图
Oct 18 Python
Python操作redis和mongoDB的方法
Dec 19 Python
利用python进行文件操作
Dec 04 Python
Python  Asyncio模块实现的生产消费者模型的方法
Mar 01 Python
pandas中DataFrame重置索引的几种方法
May 24 #Python
pandas取dataframe特定行列的实现方法
pytorch 如何使用amp进行混合精度训练
只需要这一行代码就能让python计算速度提高十倍
pytorch 如何使用float64训练
pytorch 使用半精度模型部署的操作
May 24 #Python
解决Pytorch半精度浮点型网络训练的问题
May 24 #Python
You might like
一个程序下载的管理程序(三)
2006/10/09 PHP
ezSQL PHP数据库操作类库
2010/05/16 PHP
php压缩多个CSS为一个css的代码并缓存
2011/04/21 PHP
PHP 类相关函数的使用详解
2013/05/10 PHP
PHP 中常量的知识整理
2017/04/14 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
js保存当前路径(cookies记录)
2010/12/14 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
如何使用jquery实现文字上下滚动效果
2016/10/12 Javascript
easy ui datagrid 从编辑框中获取值的方法
2017/02/22 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
nodejs body-parser 解析post数据实例
2017/07/26 NodeJs
在vue中通过axios异步使用echarts的方法
2018/01/13 Javascript
python使用arp欺骗伪造网关的方法
2015/04/24 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
2018/09/17 Python
python实现汉诺塔算法
2021/03/01 Python
对python pandas读取剪贴板内容的方法详解
2019/01/24 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
python异步实现定时任务和周期任务的方法
2019/06/29 Python
基于Django OneToOneField和ForeignKey的区别详解
2020/03/30 Python
django-orm F对象的使用 按照两个字段的和,乘积排序实例
2020/05/18 Python
Python通过文本和图片生成词云图
2020/05/21 Python
BONIA官方网站:国际奢侈品牌和皮革专家
2016/11/27 全球购物
高中生毕业自我鉴定
2013/10/10 职场文书
经销商会议欢迎词
2014/01/11 职场文书
先进班集体申报材料
2014/12/26 职场文书
施工员岗位职责范本
2015/04/11 职场文书
心术观后感
2015/06/11 职场文书
小马王观后感
2015/06/11 职场文书
python自然语言处理之字典树知识总结
2021/04/25 Python
Win11怎么进入安全模式?Windows 11进入安全模式的方法
2021/11/21 数码科技
Python tensorflow卷积神经Inception V3网络结构
2022/05/06 Python
Vue深入理解插槽slot的使用
2022/08/05 Vue.js