一、Python基础时间处理——time模块
三种时间状态:时间戳、时间元组、字符串
四个转换函数:localtime、strftime、strptime、mktime
复制代码
1
2
3
4print("获取当前时间戳:%s"%time.time()) print("获取当前时间元组:",time.localtime()) print("获取当前时间字符串:",time.strftime("%Y/%m/%d %H:%M:%S",time.localtime()))
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16import time # 获取当前时间戳,从1970年1月1日开始经历过的秒数 print("获取当前时间戳:%s"%time.time()) # 时间戳转时间元组 print(time.localtime(time.time()-60*60*24)) print("获取当前时间元组:",time.localtime()) p_tuple=time.localtime() # 时间元组转字符串format print(time.strftime("%Y-%m-%d",p_tuple)) print(time.strftime("%Y/%m/%d %H:%M:%S",p_tuple)) # 字符串转时间元祖parse #time.strptime(string,format) print(time.strptime("2019-6-18 12:05:34","%Y-%m-%d %H:%M:%S")) # 时间元组转时间戳 print(time.mktime(p_tuple))
二、pandas的datetime日期处理
1.日期格式化的三种方法:20200102
===>"2020-01-02"
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13import pandas as pd import numpy as np import datetime,time data=pd.read_excel("test.xlsx") #方法一:字符串拼接 data['日期']=data['日期'].map(lambda x:str(x)[:4]+"-"+str(x)[4:6]+"-"+str(x)[6:]) #方法二:pandas的datetime处理 import datetime data['日期']=pd.to_datetime(data['日期']) # 方法三:python time包的基础时间处理 import time data['日期']=data['日期'].apply(lambda x:time.strftime("%Y-%m-%d",time.strptime(str(x),'%Y%m%d')))
2.pandas日期计算(pd.date_range、datetime.timedelta、relativedelta)
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36pandas 的date_range生成连续序列(按天、周、月) pd.date_range(开始日期,结束日期,freq="D")#连续的日 pd.date_range(开始日期,结束日期,freq="W")#连续的周日 pd.date_range(开始日期,结束日期,freq="M")#连续的月底最后一天 ---------------------------------------------------------------------------- 《==datetime.timedelta日期按日加减==》 # 今天日期 today = datetime.date.today() # 昨天时间 yesterday = (today - datetime.timedelta(days=1)).strftime('%Y-%m-%d') #前天 for_yesterday=(today - datetime.timedelta(days=2)).strftime('%Y-%m-%d') ---------------------------------------------------------------------------- 《==relativedelta日期按月加减==》 from dateutil.relativedelta import relativedelta #去年 last year # LY_date_xl=list(map(lambda x:str(x)[:10].replace("2020","2019"),date_xl)) LY_date_xl=list(map(lambda x:(x - relativedelta(months=12)).strftime('%Y-%m-%d'),date_xl)) #前年 The year before last BL_date_xl=list(map(lambda x:(x - relativedelta(months=24)).strftime('%Y-%m-%d'),date_xl)) ---------------------------------------------------------------------------- #Demo: datetype={"day":"D","week":"W","month":'M'} date_type=int(input("请选择时间颗粒(日:0,周:1,月:2):")) dateType=list(datetype.keys())[date_type] end=pd.date_range(start_date,end_date,freq=datetype[dateType]) date_xl=pd.DataFrame(end) date_xl.columns=['结束日期'] if dateType=="day": date_xl["开始日期"]=date_xl["结束日期"] elif dateType=="week": date_xl["开始日期"]=date_xl["结束日期"].map(lambda x: (x- datetime.timedelta(days=6)).strftime('%Y-%m-%d')) else: date_xl["开始日期"]=pd.to_datetime(date_xl["结束日期"].map(lambda x: str(x)[:8]+'01')) date_xl=date_xl[["开始日期","结束日期"]].astype(str)
最后
以上就是激昂硬币最近收集整理的关于一文带你理清Python时间处理的全部内容,更多相关一文带你理清Python时间处理内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复