麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 數據分析之時間序列

數據分析之時間序列

來源:千鋒教育
發布人:wjy
時間: 2022-08-12 15:15:15 1660288515

### 引入

DataFrame處理的數據中經常會看到某一列的數據類型是時間類型或者是字符串但是需要轉成時間類型。什么是時間類型?與Python中使用的模塊time、datetime等有什么聯系?

首先看看下面這張圖,如果看到數據的如果類型是**datetime64[ns]**說明就是DataFrame中的日期時間類型。

屏幕快照 2021-08-10 下午2.41.51

但是有時候我們看到的數據明明都是日期格式,怎么就偏偏不是**datetime64[ns]**類型呢?而顯示的是object類型,比如下面你看到的數據

屏幕快照 2021-08-10 下午2.56.55

上面看到都是object類型,object類型在獲取日期時間的年月日時分秒的時候就不方便,比獲取

### 簡單回顧Python日期時間模塊

python標準庫包含用于日期(date)和時間(time)數據的數據類型,而且還有日歷方面的功能。我們主要會用到datetime、time以及calendar模塊。

#### datetime模塊

datetime模塊常用的類如下:

| 類型 | 說明 |
| --------- | ------------------------------------------ |
| date | 日期對象,以公歷形式存儲日期(年、月、日) |
| time | 時間對象,將時間存儲為:時、分、秒、毫秒 |
| datetime | 存儲日期和時間 |
| timedelta | 時間間隔,表示兩個datetime之間的差 |

附錄(日期和時間的格式化符號表)

| 符號 | 說明 |
| :--- | :---------------------------------------- |
| `%y` | 兩位數的年份表示(00-99) |
| `%Y` | 四位數的年份表示(000-9999) |
| `%m` | 月份(01-12) |
| `%d` | 月內中的一天(0-31) |
| `%H` | 24小時制小時數(0-23) |
| `%I` | 12小時制小時數(01-12) |
| `%M` | 分鐘數(00=59) |
| `%S` | 秒(00-59) |
| `%a` | 本地簡化星期名稱 |
| `%A` | 本地完整星期名稱 |
| `%b` | 本地簡化的月份名稱 |
| `%B` | 本地完整的月份名稱 |
| `%c` | 本地相應的日期表示和時間表示 |
| `%j` | 年內的一天(001-366) |
| `%p` | 本地A.M.或P.M.的等價符 |
| `%U` | 一年中的星期數(00-53)星期天為星期的開始 |
| `%w` | 星期(0-6),星期天為星期的開始 |
| `%W` | 一年中的星期數(00-53)星期一為星期的開始 |
| `%x` | 本地相應的日期表示 |
| `%X` | 本地相應的時間表示 |
| `%Z` | 當前時區的名稱 |
| `%%` | %號本身 |

date類代碼演示:

> datetime.date(year, month, day)

```python
from datetime import date
# 獲取當前的日期
today = date.today()
print(today) # 2021-08-10
print(today.day) # 10
# 也可以創建一個指定的日期對象
tomorrow = date(2021,8,11)
print(tomorrow) # 2021-08-11
print(tomorrow.day) # 11
print(today.strftime('%Y年%m月%d日')) # 相當于格式化輸出
```

time類代碼演示:

> datetime.time(hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] )

```python
from datetime import time
# 創建一個time對象
t = time(14,20,59,83999)
print(t) # 14:20:59.083999
print(t.strftime('%H:%M:%S')) # 相當于格式化輸出
```

datetime代碼演示:

> datetime相當于date和time結合起來
> datetime.datetime (year, month, day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] )

```python
from datetime import datetime
now = datetime.now()
print(now) # datetime.datetime(2021, 8, 10, 15, 21, 6, 581886)
print(now.year) # 2021
print(now.month) # 8
print(now.day) # 21
print(now.date())
print(now.time())
print(now.strftime('%Y年%m月%d日 %H:%M:%S')) # 格式化輸出
```

timedelta代碼演示:

> 使用timedelta可以很方便的在日期上做天days,小時hours,分鐘,秒,毫秒,微妙的時間計算,如果要計算月份則需要另外的辦法。

```python
from datetime import *
dt = datetime.now()
#日期減一天,dt1和dt2都表示昨天,兩種不同的操作方式
dt1 = dt + timedelta(days=-1) # 昨天
dt2 = dt - timedelta(days=1) # 昨天
dt3 = dt + timedelta(days=1) # 明天
print(dt1)
print(dt2)
print(dt3)
# 也可以小時的加減
t1 = dt + timedelta(hours=1)
print(t1)
```

**案例**:獲取指定日期月份的**最后一天的日期和本月天數**

```
from datetime import datetime,date,timedelta

date1 = datetime.now()
def eomonth(date_object):
if date_object.month == 12:
next_month_first_date = date(date_object.year+1,1,1)
else:
next_month_first_date = date(date_object.year, date_object.month+1, 1)

return next_month_first_date - timedelta(1)

print(eomonth(date1))
print(eomonth(date1).day)
```

#### time模塊

time模塊中時間表現的格式主要有三種:

> a、timestamp時間戳,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量
>
> b、struct_time時間元組,共有九個元素組。
>
> c、format time 格式化時間,已格式化的結構使時間更具可讀性。包括自定義格式和固定格式

屏幕快照 2021-08-10 下午4.12.36

```python
import time

# 生成timestamp
print(time.time()) # 時間戳時間
print(time.localtime()) # 生成struct_time
print(time.strptime('2021-08-10 16:37:06', '%Y-%m-%d %X')) # 格式化時間轉struct_time
print(time.strftime("%Y-%m-%d %X",time.localtime())) # struct_time轉格式化時間
```

當然還有大家常用的time.sleep(seconds)休眠。

### panads日期時間操作

我們在數據分析的時候時間日期的操作無非下面幾種:

#### object轉日期時間類型

| 原有數據類型(object)和展示形式 | 想得到的格式 | 代碼 |
| -------------------------------- | ------------------- | ----------------------------------------------------- |
| 2021-08-10 | 2021-08-10 | pd.to_datetime(data['time_object']) |
| 08/10/21 | 2021-08-10 | pd.to_datetime(data['time_object'],format='%m/%d/%y') |
| 2021-08-10 14:20:59 | 2021-08-10 14:20:59 | pd.to_datetime(data['time_object']) |
| 2021年08月 | 2021-08-01 | pd.to_datetime(data['time_object'],format='%Y年%m月') |

#### 日期轉固定格式的

| 原有數據類型(datetime64)和展示形式 | 想得到的格式 | 代碼 |
| ------------------------------------ | ------------------- | ------------------------------------------------------------ |
| 2021-08-10 14:20:59 | 2021-08-10 | data['datetime_col'].dt.date 或者pd.to_datetime(data['datetime_col'].dt.strftime('%Y-%m-%d')) |
| 2021-08-10 14:20:59 | 2021-08-10 00:00:00 | data['datetime_col'].dt.strftime('%Y-%m-%d 00:00:00') |

#### 提取日期類型的年月日

| 原有數據類型(datetime64)和展示形式 | 想得到的格式 | 代碼 |
| ------------------------------------ | ------------ | ------------------------------ |
| 2021-08-10 14:20:59 | 2021 | data['datetime_col'].dt.year |
| 2021-08-10 14:20:59 | 8 | data['datetime_col'].dt.month |
| 2021-08-10 14:20:59 | 10 | data['datetime_col'].dt.day |
| 2021-08-10 14:20:59 | 14 | data['datetime_col'].dt.hour |
| 2021-08-10 14:20:59 | 20 | data['datetime_col'].dt.minute |
| 2021-08-10 14:20:59 | 59 | data['datetime_col'].dt.second |

#### 時間差的計算

| startdate | enddate | difference | 代碼 |
| ------------------- | ------------------- | ---------- | ------------------------------------------------------------ |
| 2018-02-14 12:20:36 | 2019-02-28 13:38:41 | 379.054225 | (data['datetime_col']-data['datetime_col'])/np.timedelta64(1,'D') |

np.timedelta64具體內容可以參看文檔:https://numpy.org/doc/stable/reference/arrays.datetime.html文檔中給出的案例非常詳細。

 

 

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 国产精品无码久久久久 | 亚洲欧洲中文日产| 高清破外女出血视频| 久久精品a亚洲国产v高清不卡| 国产成人综合欧美精品久久| 国产福利精品一区二区| 波多野结衣被绝伦在线观看| 欧美日韩色黄大片在线视频| 伊人久久精品亚洲午夜| 嫩草影院在线视频| 日韩午夜视频在线观看| 天天做天天摸天天爽天天爱| 男女免费观看在线爽爽爽视频| 看黄a大片免费| 成人综合激情另类小说| 香蕉视频毛片| 天堂网www中文在线| 成人国产在线不卡视频| 中文字幕久久久久久久系列| 黄页网站在线免费观看| 美女扒开裤子让男人桶视频 | 再灬再灬再灬深一点舒服| 黑人巨大白妞出浆| 男生肌肌捅女生肌肌视频| 三级黄色小视频| 日本理论午夜中文字幕| 亚洲精品美女在线观看播放| 欧美韩国日本在线观看| 天天在线天天看成人免费视频| 午夜性影院爽爽爽爽爽爽| 全免费a级毛片免费看| 男女做污污| 香蕉av影院| 欧美黑人巨大videos在线| 精品卡一卡2卡三卡免费观看| 波多野结衣33分钟办公室jian情| 中文乱码精品一区二区三区| 动漫美女被免费网站在线视频| а√最新版在线天堂| 动漫美女羞羞漫画| 四虎影视永久在线精品免费|