您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:教你怎么用python实现字符串转日期

51自学网 2021-10-30 22:38:01
  python
这篇教程教你怎么用python实现字符串转日期写得很实用,希望能帮到您。

一、生成日期数据

import pandas as pdpd.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=10date_1=pd.date_range(start=start_date,periods=10).tolist()  #默认freq为D,每天date_1

在这里插入图片描述

也可以设置频率freq=‘M'

date_1=pd.date_range(start=start_date,periods=10,freq='M') 

在这里插入图片描述

1.2 设定起始、终止时间、频率

start_date='20200101'end_date='20200110'date_2=pd.date_range(start=start_date,end=end_date,freq='D')  #默认为Ddate_2

在这里插入图片描述

频率freq的设置有:

D --- Day --- 每日B --- BusinessDay --- 每工作日H --- Hour --- 每小时T/min --- Minute ---每分钟S --- Second --- 每秒M --- MonthEnd --- 每月最后一个日历日Q --- Quater --- 每季度

注意上面生成的日期数据,就是list格式,在构建数据框时可以直接用。

pd.DataFrame({'Time':date_1})

在这里插入图片描述

二、字符串转化为日期

导入数据时常会出现,日期型数据导入后,变成字符串格式,在后续使用时,需要转化为日期。

构造一个时间数据

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()

在这里插入图片描述

上面数据构造时,为了方便之后举例子,将生成的时间数据转化为字符串后,构造的数据框。

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 datetimedatetime.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 datetimedef 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']

在这里插入图片描述

三、从日期数据中提取成分

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 字符串切片截取

数据如下:

在这里插入图片描述

def date_ch(value):    str_value=value.strftime('%Y-%m-%d')    month=str_value[5:7]    return monthdf_temp['Time'].apply(date_ch)#或者#df_temp['Time'].apply(lambda x:date_ch(x))

在这里插入图片描述

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字符串转日期内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


pandas中DataFrame重置索引的几种方法
pandas DataFrame.shift()函数的具体使用
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。