教你怎么⽤python实现字符串转⽇期
⽬录
⼀、⽣成⽇期数据
1.1 设定开始时间、长度、频率
1.2 设定起始、终⽌时间、频率
⼆、字符串转化为⽇期
2._datetime()
2.2 datetime.strptime
三、从⽇期数据中提取成分
3.1 直接提取:
3.2 使⽤strftime函数:
3.3 字符串切⽚截取
⼀、⽣成⽇期数据
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
也可以设置频率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') #默认为D
date_2
频率freq的设置有:
D --- Day --- 每⽇
B --- BusinessDay --- 每⼯作⽇
H --- Hour --- 每⼩时
T/min --- Minute ---每分钟
S --- Second --- 每秒
M --- MonthEnd --- 每⽉最后⼀个⽇历⽇
Q --- Quater --- 每季度python中lambda怎么使用
注意上⾯⽣成的⽇期数据,就是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._datetime()
print(df_temp['Time'].dtype)
_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']
三、从⽇期数据中提取成分
3.1 直接提取:
<_datetime('20200307').month
#year:⽇
#month:⽉
#week:周
#day:⽇
输出:
3
3.2 使⽤strftime函数:
<_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 month
df_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字符串转⽇期内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论