python中处理日期和时间的标准模块是-Python时间相关处理

日期和时间数据类型及工具

python标准库包含于日期(data)和时间(time)数据的数据类型,datetime ime以及calendar模块会被经常用到

datetime以毫秒形式存储日期和时间,datetime.timedelta表示两个datetime对象之间的时间差

给datetime对象加上或减去一个或多个timedelta,会产生一个新的对象。

datetime模块中的数据类型

date:以公历形式存储日历日期(年、月、日)

time:将时间存储时、分、秒、毫秒

datetime:存储和日期

timedelta:表示两个datetime值之间的差(日、秒、毫秒)

字符串和datetime的相互转换

1)Python标准库函数

日期转换成字符串:利用str或strftime

字符串转换成日期:datetime.strptime

2)第三方库dateutil.parser的时间解析函数

3)pandas处理成组日期

pandas通常用于处理成组日期,不管这些日期是DataFrame的轴索引还是列,to_datetime方法可以解析多种不同的日期表示形式

pandas时间序列基础以及时间、日期处理

pandas最基本的时间序列类型就是以时间戳(时间点)(通常以python字符串或datetime对象表示)为索引的series

pandas不同索引的时间序列之间的算术运算会自动按日期对齐

索引为日期的Series和DataFrame数据的索引、选取以及子集构造方法

1).index[number_int] #得到序列值

2)[一个可以被解析为日期的字符串]

3)对于较长的时间序列,只需要传入年或年月可返回对应的数据切片

带有重复索引的时间序列

1).index.is_unique检查索引日期是否是惟一的

2)对于非唯一时间戳的数据进行聚合,通过groupby,并传入level=0(索引的唯一一层)

b7fe70dd5fae315261c2d6da7d2d6e3664e.jpg

6c132b69d026ba68e63e65526daa326a41d.jpg

1 from datetime importdatetime2

3 stamp=datetime(2017,6,27)4

5 str(stamp)6

7 stamp.strftime("%y-%m-%d")8

9 #对多个时间进行解析成字符串

10 date=["2017-6-26","2017-6-27"]11

12 datetime2=[datetime.strptime(x,"%Y-%m-%d") for x indate]13

14 datetime215

16

17 #第三方库dateutil.parser的时间解析函数

18 from dateutil.parser importparse19

20 parse('2017-6-27')21

22 parse("27/6/2017",dayfirst=True)23

24

25 date26

27 importpandas as pd28 pd.to_datetime(date)29

30

31

32 ###pandas时间序列基础及时间、日期处理

33 dates=['2017-06-20','2017-06-21','2017-06-22','2017-06-23','2017-06-24','2017-06-25','2017-06-26','2017-06-27']34

35 importnumpy as np36 ts=pd.Series(np.random.randn(8),index=pd.to_datetime(dates))37

38 #pandas不同索引的时间序列之间的算术运算会自动按日期对齐

39 ts[::2]40

41 ts+ts[::2]42

43

44 ###索引为日期的Series和DataFrame数据的索引、选取以及子集构造方法

45 ts[ts.index[2]]46

47 ts["2017-06-21"] #传入可以被解析成日期的字符串

48

49 ts['21/06/2017']50

51 ts['20170621']52

53 ts["2017-06"]54

55 ts['2017-06-20':'2017-06-23']56

57

58 ###带有重复索引的时间序列

59 dates=pd.DatetimeIndex(['2017/06/01','2017/06/02','2017/06/02','2017/06/02','2017/06/03'])60 dates61

62 dup_ts=pd.Series(np.arange(5),index=dates)63 dup_ts64

65 dup_ts.index.is_unique66

67 dup_ts["2017-06-02"]68

69 grouped=dup_ts.groupby(level=0).mean() #索引的唯一一层

70

71

72

73 dup_df=pd.DataFrame(np.arange(10).reshape((5,2)),index=dates)74 dup_df75

76 grouped_df=dup_df.groupby(level=0).mean()

View Code

-----摘自:https://blog.csdn.net/ly_ysys629/article/details/73822716

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值