教你怎么用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模块详解
Sep 15 Python
使用requests库制作Python爬虫
Mar 25 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
Apr 02 Python
Python中的延迟绑定原理详解
Oct 11 Python
Pytorch 实现数据集自定义读取
Jan 18 Python
使用Python发现隐藏的wifi
Mar 04 Python
解决Jupyter因卸载重装导致的问题修复
Apr 10 Python
Python操作dict时避免出现KeyError的几种解决方法
Sep 20 Python
python 决策树算法的实现
Oct 09 Python
Django URL参数Template反向解析
Nov 24 Python
C++和python实现阿姆斯特朗数字查找实例代码
Dec 07 Python
详解matplotlib中pyplot和面向对象两种绘图模式之间的关系
Jan 22 Python
pandas中DataFrame重置索引的几种方法
May 24 #Python
pandas取dataframe特定行列的实现方法
pytorch 如何使用amp进行混合精度训练
只需要这一行代码就能让python计算速度提高十倍
pytorch 如何使用float64训练
pytorch 使用半精度模型部署的操作
May 24 #Python
解决Pytorch半精度浮点型网络训练的问题
May 24 #Python
You might like
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
PHP通用分页类page.php[仿google分页]
2008/08/31 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
PHP7数组的底层实现示例
2019/08/25 PHP
javascript利用初始化数据装配模版的实现代码
2010/11/17 Javascript
基于jquery的滑动样例代码
2010/11/20 Javascript
解决js正则匹配换行问题实现代码
2012/12/10 Javascript
jQuery实现简单的日期输入格式化控件
2015/03/12 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
2015/04/06 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
vue分页组件table-pagebar使用实例解析
2020/11/15 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
微信小程序获取用户openId的实现方法
2017/05/23 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
three.js实现3D视野缩放效果
2017/11/16 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
2019/07/31 Javascript
Vue路由权限控制解析
2020/11/09 Javascript
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
2015/03/19 Python
使用Python的PIL模块来进行图片对比
2016/02/18 Python
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
numpy添加新的维度:newaxis的方法
2018/08/02 Python
关于tensorflow的几种参数初始化方法小结
2020/01/04 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
Python中remove漏删和索引越界问题的解决
2020/03/18 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
2020/06/06 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
如何使用html5与css3完成google涂鸦动画
2012/12/16 HTML / CSS
JBL加拿大官方商店:扬声器、耳机等
2020/10/23 全球购物
环保倡议书格式范文
2014/05/14 职场文书
股票投资建议书
2014/05/19 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
民主生活会发言材料
2014/10/20 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
公司档案管理制度
2015/08/05 职场文书
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js