#導入相關庫 import pandas as pd import numpy as np import time import datetime import matplotlib.pyplot as plt # 解決坐標軸刻度負號亂碼 plt.rcParams['axes.unicode_minus'] = False # 解決中文亂碼問題 plt.rcParams['font.sans-serif'] = ['Simhei']
在計算機中,時間實際上是用數字表示的
我們把1970年1月1日 00:00:00 UTC+00:00時區的時刻稱為 epoch time (紀元),記為0(1970年以前的時間 timestamp 為負數),當前時間就是相對於 epoch time 的秒數,稱為 timestamp(時間戳)
timestamp 的值與時區毫無關系,因為 timestamp 一旦確定,其 UTC 時間就確定了,轉換到任意時區的時間也是完全確定的,這就是為什么計算機存儲的當前時間是以 timestamp 表示的,因為全球各地的計算機在任意時刻的 timestamp 都是完全相同的(假定時間已校准)
python中時間日期數據對應的符號及含義:
類型 描述 %Y 四位的年份 %y 兩位的年份 %m 兩位的月份 %d 兩位的日期號 %H 小時,24小時制00-23 %I 小時,12小時制01-12 %M 兩位的分鍾00-59 %S 秒00-61,其中60,61是閏秒 %w 星期日期0-6,其中0表示星期日 %U 一年中的星期數00-53。以星期天為每周第一天,一年中第一個星期天前的日期作為第“0”周 %W 一年中的星期數00-53。以星期一為每周第一天,一年中第一個星期一前的日期作為第“0”周 %z 格式為+HHMM或者-HHMM的UTC時區偏移;如果沒有時區則為空。 %F %Y-%m-%d的簡寫 %D %m/%d/%y的簡寫
-
1、時間戳 Timestamp 對象的生成
-
1.1 pd.Timestamp
-
1.2 pd.to_datetime
-
1.3 pd.date_range
限制生成時間的數量和間隔:
限制生成時間的范圍和間隔:
- 間隔 freq 對應的主要取值:
- Y:年
- M:月
- D:天
- H:小時
- T:分鍾
- s:秒
- 其他頻率時間單位:https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#timeseries-offset-aliases
-
2、日期數據轉化
將不規則的字符串日期,通過人工識別日期元素再寫成 format 模式,然后通過 pd.to_datetime() 來提取時間元素,生成 datetime 對象
-
2.1 轉化為指定格式:.dt.strftime()
-
2.2 提取特定的時間單位元素
-
3、日期索引對象 DatetimeIndex
DatetimeIndex 的主要作用是之一是用作 Pandas 對象的索引,使用它作為索引除了擁有普通索引對象的所有基本功能外,還擁有簡化頻率處理的高級時間序列方法
-
3.1 索引和切片
-
3.2 其他方法
可以通過 Timestamp 或 DateTimeIndex 訪問一些時間/日期的屬性
想要查看所有的屬性見官方鏈接:
Time/Date Components (http://pandas.pydata.org/pandas-docs/stable/timeseries.html#time-date-components)
-
4、DateOffset對象
DateOffset 是做日期偏移的,它的參數與 dateutil.relativedelta 基本相同,工作方式如下
-
5、重采樣 resample 對象
resample 表示根據日期維度進行數據聚合,可以按照分鍾、小時、工作日、周、月、年等來作為日期維度
更多的日期維度見 Offset Aliases( http://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases )