教你怎么用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 (2)
Oct 31 Python
Python fileinput模块使用实例
May 28 Python
python3 pillow生成简单验证码图片的示例
Sep 19 Python
对python numpy数组中冒号的使用方法详解
Apr 17 Python
Python线性拟合实现函数与用法示例
Dec 13 Python
python读取.mat文件的数据及实例代码
Jul 12 Python
python通过SSH登陆linux并操作的实现
Oct 10 Python
Python3实现配置文件差异对比脚本
Nov 18 Python
windows、linux下打包Python3程序详细方法
Mar 17 Python
详解python tkinter 图片插入问题
Sep 03 Python
OpenCV中resize函数插值算法的实现过程(五种)
Jun 05 Python
Python+Appium自动化测试的实战
Jun 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
让PHP显示Facebook的粉丝数量方法
2014/01/08 PHP
php中Ctype函数用法详解
2014/12/09 PHP
php简单操作mysql数据库的类
2015/04/16 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
2015/09/14 PHP
PHP 爬取网页的主要方法
2018/07/13 PHP
Js如何判断客户端是PC还是手持设备简单分析
2012/11/22 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
jQuery实现的自动加载页面功能示例
2016/09/04 Javascript
discuz表情的JS提取方法分析
2017/03/22 Javascript
ES6 迭代器(Iterator)和 for.of循环使用方法学习(总结)
2018/02/08 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
2019/05/14 Javascript
vue+layui实现select动态加载后台数据的例子
2019/09/20 Javascript
JavaScript 中的六种循环方法
2021/01/06 Javascript
python中enumerate函数遍历元素用法分析
2016/03/11 Python
使用Python实现简单的服务器功能
2017/08/25 Python
python将txt文件读取为字典的示例
2018/12/22 Python
Django中的静态文件管理过程解析
2019/08/01 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
序列化Python对象的方法
2020/08/01 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
2020/11/20 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
世界上第一个水枕头:Mediflow
2018/12/06 全球购物
致跳远运动员加油稿
2014/02/11 职场文书
高中生班主任评语
2014/04/25 职场文书
学校对教师的评语
2014/04/28 职场文书
司法局火灾防控方案
2014/06/05 职场文书
车辆年审委托书范本
2014/09/18 职场文书
校园安全广播稿范文
2014/09/25 职场文书
护士求职简历自我评价
2015/03/10 职场文书
《金钱的魔力》教学反思
2016/02/20 职场文书
FFmpeg视频处理入门教程(新手必看)
2022/01/22 杂记
Win11自动黑屏怎么办 Win11自动黑屏设置教程
2022/07/15 数码科技