網站首頁 編程語言 正文
在零售、經濟和金融等行業,數據總是由于貨幣和銷售而不斷變化,生成的所有數據都高度依賴于時間。如果這些數據沒有時間戳或標記,實際上很難管理所有收集的數據。Python 程序允許我們使用 NumPy timedelta64 和 datetime64 來操作和檢索時間序列數據。sklern庫中也提供時間序列功能,但 Pandas 為我們提供了更多且好用的函數。
Pandas 庫中有四個與時間相關的概念
- 日期時間:日期時間表示特定日期和時間及其各自的時區。它在 pandas 中的數據類型是 datetime64[ns] 或 datetime64[ns, tz]。
- 時間增量:時間增量表示時間差異,它們可以是不同的單位。示例:“天、小時、減號”等。換句話說,它們是日期時間的子類。
- 時間跨度:時間跨度被稱為固定周期內的相關頻率。時間跨度的數據類型是 period[freq]。
- 日期偏移:日期偏移有助于從當前日期計算選定日期,日期偏移量在 pandas 中沒有特定的數據類型。
時間序列分析至關重要,因為它們可以幫助我們了解隨著時間的推移影響趨勢或系統模式的因素。在數據可視化的幫助下,分析并做出后續決策。
現在讓我們看幾個使用這些函數的例子
1、查找特定日期的某一天的名稱
import pandas as pd
day = pd.Timestamp(‘2021/1/5')
day.day_name()
上面的程序是顯示特定日期的名稱。第一步是導入 panda 的并使用 Timestamp 和 day_name 函數。“Timestamp”功能用于輸入日期,“day_name”功能用于顯示指定日期的名稱。
2、執行算術計算
import pandas as pd
day = pd.Timestamp(‘2021/1/5')
day1 = day + pd.Timedelta(“3 day”)
day1.day_name()
day2 = day1 + pd.offsets.BDay()
day2.day_name()
在第一個代碼中,顯示三天后日期名稱。“Timedelta”功能允許輸入任何天單位(天、小時、分鐘、秒)的時差。
在第二個代碼中,使用“offsets.BDay()”函數來顯示下一個工作日。換句話說,這意味著在星期五之后,下一個工作日是星期一。
3、使用時區信息來操作轉換日期時間
獲取時區的信息
import pandas as pd
import numpy as np
from datetime import datetime
dat_ran = dat_ran.tz_localize(“UTC”)
dat_ran
轉換為美國時區
dat_ran.tz_convert(“US/Pacific”)
代碼的目標是更改日期的時區。首先需要找到當前時區。這是“tz_localize()”函數完成的。我們現在知道當前時區是“UTC”。使用“tz_convert()”函數,轉換為美國/太平洋時區。
4、使用日期時間戳
import pandas as pd
import numpy as np
from datetime import datetime
dat_ran = pd.date_range(start = ‘1/1/2021', end = ‘1/5/2021', freq = ‘Min')
print(type(dat_ran[110]))
5、創建日期系列
import pandas as pd
import numpy as np
from datetime import datetime
dat_ran = pd.date_range(start = ‘1/1/2021', end = ‘1/5/2021', freq = ‘Min')
print(dat_ran)
上面的代碼生成了一個日期系列的范圍。使用“date_range”函數,輸入開始和結束日期,可以獲得該范圍內的日期。
6、操作日期序列
import pandas as pd
from datetime import datetime
import numpy as np
dat_ran = pd.date_range(start ='1/1/2019', end ='1/08/2019',freq ='Min')
df = pd.DataFrame(dat_ran, columns =[‘date'])
df[‘data'] = np.random.randint(0, 100, size =(len(dat_ran)))
print(df.head(5))
在上面的代碼中,使用“DataFrame”函數將字符串類型轉換為dataframe。最后“np.random.randint()”函數是隨機生成一些假定的數據。
7、使用時間戳數據對數據進行切片
import pandas as pd
from datetime import datetime
import numpy as np
dat_ran = pd.date_range(start ='1/1/2019', end ='1/08/2019', freq ='Min')
df = pd.DataFrame(dat_ran, columns =[‘date'])
df[‘data'] = np.random.randint(0, 100, size =(len(dat_ran)))
string_data = [str(x) for x in dat_ran]
print(string_data[1:5])
上面代碼是是第6條的的延續。在創建dataframe并將其映射到隨機數后,對列表進行切片。
最后總結,本文通過示例演示了時間序列和日期函數的所有基礎知識。建議參考本文中的內容并嘗試pandas中的其他日期函數進行更深入的學習,因為這些函數在我們實際工作中非常的重要。
原文鏈接:https://segmentfault.com/a/1190000041755385
相關推薦
- 2022-05-26 Flutter?GridView顯示隨機單詞效果_Android
- 2023-02-02 goland中npm無法使用的問題及解決_Golang
- 2022-12-24 darknet框架中YOLOv3對數據集進行訓練和預測詳解_python
- 2022-05-22 使用Redis實現點贊取消點贊的詳細代碼_Redis
- 2022-05-07 LINQ教程之使用Lambda表達式_實用技巧
- 2022-05-01 Entity?Framework系統架構與原理介紹_基礎應用
- 2022-09-07 基于域名的方式訪問Istio服務網格中的多個應用程序的方法詳解_相關技巧
- 2022-05-10 setAttribute() 與 getAttribute() 用法剖析及選項卡操作的實例展示,這一
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支