Series第十讲 Datetime 属性
2020-09-24 本文已影响0人
butters001
Series第十讲 Datetime 属性
本节课将讲解Pandas-Series中关于Datetime的属性。
Datetime 属性
Series.dt.date
Series.dt.time
Series.dt.timetz
Series.dt.year
Series.dt.month
Series.dt.day
Series.dt.hour
Series.dt.minute
Series.dt.second
Series.dt.microsecond
Series.dt.nanosecond
Series.dt.week
Series.dt.dayofweek
Series.dt.weekday
Series.dt.dayofyear
Series.dt.quarter
Series.dt.is_month_start
Series.dt.is_month_end
Series.dt.is_quarter_start
Series.dt.is_quarter_end
Series.dt.is_year_start
Series.dt.is_year_end
Series.dt.is_leap_year
Series.dt.daysinmonth
Series.dt.days_in_month
Series.dt.tz
Series.dt.freq
详细介绍
首先导入所需依赖包,创建一个时间类型的Index
In [1]: import numpy as np
In [2]: import pandas as pd
In [3]: index = pd.date_range('1/1/2000', periods=4, freq='T')
In [6]: index
Out[6]:
DatetimeIndex(['2000-01-01 00:00:00', '2000-01-01 00:01:00',
'2000-01-01 00:02:00', '2000-01-01 00:03:00'],
dtype='datetime64[ns]', freq='T')
1. Series.dt.date
返回python datetime.date(年/月/日)对象的numpy数组。
In [4]: index.date
Out[4]:
array([datetime.date(2000, 1, 1), datetime.date(2000, 1, 1),
datetime.date(2000, 1, 1), datetime.date(2000, 1, 1)], dtype=object)
2. Series.dt.time
返回datetime.time(时/分)的numpy数组。
In [5]: index.time
Out[5]:
array([datetime.time(0, 0), datetime.time(0, 1), datetime.time(0, 2),
datetime.time(0, 3)], dtype=object)
3. Series.dt.timetz
返回datetime.time的numpy数组,其中还包含时区信息(如果有时区的话).
In [7]: index.timetz
Out[7]:
array([datetime.time(0, 0), datetime.time(0, 1), datetime.time(0, 2),
datetime.time(0, 3)], dtype=object)
In [35]: index.tz_localize('UTC').timetz
Out[35]:
array([datetime.time(0, 0, tzinfo=<UTC>),
datetime.time(0, 1, tzinfo=<UTC>),
datetime.time(0, 2, tzinfo=<UTC>),
datetime.time(0, 3, tzinfo=<UTC>)], dtype=object)
4. Series.dt.year
哪年。
In [8]: index.year
Out[8]: Int64Index([2000, 2000, 2000, 2000], dtype='int64')
5. Series.dt.month
哪月。
In [9]: index.month
Out[9]: Int64Index([1, 1, 1, 1], dtype='int64')
6. Series.dt.day
哪日。
In [10]: index.day
Out[10]: Int64Index([1, 1, 1, 1], dtype='int64')
7. Series.dt.hour
小时。
In [11]: index.hour
Out[11]: Int64Index([0, 0, 0, 0], dtype='int64')
8. Series.dt.minute
分钟。
In [12]: index.minute
Out[12]: Int64Index([0, 1, 2, 3], dtype='int64')
9. Series.dt.second
秒。
In [13]: index.second
Out[13]: Int64Index([0, 0, 0, 0], dtype='int64')
10. Series.dt.microsecond
微秒。
In [14]: index.microsecond
Out[14]: Int64Index([0, 0, 0, 0], dtype='int64')
11. Series.dt.nanosecond
纳秒。
In [15]: index.nanosecond
Out[15]: Int64Index([0, 0, 0, 0], dtype='int64')
12. Series.dt.week
一年中的第几周。
In [19]: index.week
Out[19]: Int64Index([52, 52, 52, 52], dtype='int64')
13. Series.dt.dayofweek
周几,星期一= 0,星期日= 6。
# 周六
In [20]: index.dayofweek
Out[20]: Int64Index([5, 5, 5, 5], dtype='int64')
14. Series.dt.weekday
同dayofweek。
15. Series.dt.dayofyear
一年中的第几天。
In [21]: index.dayofyear
Out[21]: Int64Index([1, 1, 1, 1], dtype='int64')
16. Series.dt.quarter
属于第几个季度,1/2/3月为1季度,4/5/6为2季度。
In [22]: index.quarter
Out[22]: Int64Index([1, 1, 1, 1], dtype='int64')
17. Series.dt.is_month_start
日期是否为每月的第一天。
In [23]: index.is_month_start
Out[23]: array([ True, True, True, True])
18. Series.dt.is_month_end
日期是否为每月的最后一天。
In [24]: index.is_month_end
Out[24]: array([False, False, False, False])
19. Series.dt.is_quarter_start
日期是否为一个季度的第一天。
In [25]: index.is_quarter_start
Out[25]: array([ True, True, True, True])
20. Series.dt.is_quarter_end
日期是否为一个季度的最后一天。
In [26]: index.is_quarter_end
Out[26]: array([False, False, False, False])
21. Series.dt.is_year_start
日期是否为一年的第一天。
In [27]: index.is_year_start
Out[27]: array([ True, True, True, True])
22. Series.dt.is_year_end
日期是否为一年的最后一天。
In [28]: index.is_year_end
Out[28]: array([False, False, False, False])
23. Series.dt.is_leap_year
是否属于闰年。
In [29]: index.is_leap_year
Out[29]: array([ True, True, True, True])
24. Series.dt.daysinmonth
该月份一共有几天。
In [30]: index.daysinmonth
Out[30]: Int64Index([31, 31, 31, 31], dtype='int64')
25. Series.dt.days_in_month
同daysinmonth。
26. Series.dt.tz
返回时区(如果有)。
# 返回None,因为未设置时区
In [32]: index.tz
# 通过tz_localize转换为指定时区 tz_localize方法上一讲有介绍
In [34]: index.tz_localize('UTC').tz
Out[34]: <UTC>
27. Series.dt.freq
返回此PeriodArray的频率对象,即创建对象时的freq值。
In [31]: index.freq
Out[31]: <Minute>