自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

三個(gè)用于時(shí)間序列數(shù)據(jù)整理的Pandas函數(shù)

開發(fā) 前端
本文將演示 3 個(gè)處理時(shí)間序列數(shù)據(jù)最常用的 pandas 操作。

本文將演示 3 個(gè)處理時(shí)間序列數(shù)據(jù)最常用的 pandas 操作

圖片

首先我們要導(dǎo)入需要的庫(kù):

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

本文使用的數(shù)據(jù)集非常簡(jiǎn)單。它只有 1 列,名為 VPact (mbar),表示氣候中的氣壓。該數(shù)據(jù)集的索引是日期時(shí)間類型:

圖片

我們也可以應(yīng)用 pd.to_datetime(df.index) 來(lái)制作日期時(shí)間類型的索引。

本地化時(shí)區(qū)

  • 本地化是什么意思?

本地化意味著將給定的時(shí)區(qū)更改為目標(biāo)或所需的時(shí)區(qū)。這樣做不會(huì)改變數(shù)據(jù)集中的任何內(nèi)容,只是日期和時(shí)間將顯示在所選擇的時(shí)區(qū)中。

  • 為什么需要它?

如果你拿到的時(shí)間序列數(shù)據(jù)集是UTC格式的,而你的客戶要求你根據(jù)例如美洲時(shí)區(qū)來(lái)處理氣候數(shù)據(jù)。你就需要在將其提供給模型之前對(duì)其進(jìn)行更改,因?yàn)槿绻贿@樣做模型將生成的結(jié)果將全部基于UTC。

  • 如何修改

只需要更改數(shù)據(jù)集的索引部分

df.index = df.index.tz_localize("UTC")

看看下面的結(jié)果:

數(shù)據(jù)集的索引部分發(fā)生變化。日期和時(shí)間和以前一樣,但現(xiàn)在它在最后顯示+00:00。這意味著pandas現(xiàn)在將索引識(shí)別為UTC時(shí)區(qū)的時(shí)間實(shí)例。

現(xiàn)在我們可以專注于將UTC時(shí)區(qū)轉(zhuǎn)換為我們想要的時(shí)區(qū)。

df.index = df.index.tz_convert("Asia/Qatar")

現(xiàn)在我們的時(shí)區(qū)已經(jīng)改變到卡塔爾時(shí)區(qū)+03:00。

時(shí)間窗口重采樣

在本節(jié)中將研究如何根據(jù)時(shí)間間隔來(lái)預(yù)測(cè)時(shí)間序列數(shù)據(jù)。

  • 這是什么意思?

這意味著收集一定范圍的目標(biāo)值(在本例中為蒸氣壓讀數(shù))并以某種方式概括它們,以便我們可以大致了解數(shù)據(jù)集中的趨勢(shì)。我們可以通過(guò)取平均值、最大值、最小值等來(lái)概括假設(shè)一次讀數(shù)的組。這里我們將5 個(gè)讀數(shù)分成一組,也就是我們所說(shuō)的時(shí)間窗口

  • 我們?yōu)槭裁葱枰?/li>

我將用一個(gè)例子來(lái)解釋這一點(diǎn)。假設(shè)客戶的問題是:

“我給你我的氣候傳感器讀數(shù),每 10 分鐘獲取一次,我希望你告訴我每天對(duì)蒸氣壓的預(yù)測(cè)。也就是說(shuō),我想要對(duì)未來(lái)每一天的預(yù)測(cè)?!?/p>

現(xiàn)在你可能會(huì)說(shuō),這有什么大不了的?我們手上有一些讀數(shù),每 10 分鐘讀取一次,我們只需要預(yù)測(cè)每天的氣壓。

在我們開始工作之前,讓我們先對(duì)器進(jìn)行可視化:

fig, ax = plt.subplots(figsize=(15, 6))
df['VPact (mbar)'].plot(ax=ax,xlabel='Time', ylabel='VPact (mbar)')

圖片

  • 如何重采樣

現(xiàn)在,我們重新采樣數(shù)據(jù)集,并使其成為匯總數(shù)據(jù)的單行/記錄。

resampled_df = df["VPact (mbar)"].resample("1D")

這可能看起來(lái)很奇怪,但它返回的是一個(gè)對(duì)象而不是一個(gè)DF。如果我們?cè)噲D運(yùn)行resampled_df.head(),它會(huì)拋出一個(gè)錯(cuò)誤。這是因?yàn)殡m然已經(jīng)將它重新采樣為每行一天,但我們還沒有告訴它應(yīng)該如何聚合一天窗口中出現(xiàn)的所有讀數(shù)。

聚合的操作包括:最大值、最小值、平均值、眾數(shù)?本文中我們?nèi)∑骄怠?/p>

resampled_df.mean()

# OUTPUT:
# Date Time
# 2010-01-01 00:00:00+03:00 4.386905
# 2010-01-02 00:00:00+03:00 3.954861
# 2010-01-03 00:00:00+03:00 5.435417
# 2010-01-04 00:00:00+03:00 5.129375
# 2010-01-05 00:00:00+03:00 10.372361
# Freq: D, Name: VPact (mbar), Length: 365, dtype: float64

我們還需要將其轉(zhuǎn)換為df。

resampled_df = resampled_df.mean().to_frame()

圖片

時(shí)間索引從每分鐘讀數(shù)變?yōu)槊刻?。我們?cè)俅慰梢暬?/p>

fig, ax = plt.subplots(figsize=(15, 6))
resampled_df['VPact (mbar)'].plot(ax=ax,xlabel='Time', ylabel='VPact (mbar)')

時(shí)間間隔小了很多,顯示的也是每天的數(shù)據(jù)

填補(bǔ)時(shí)間空白

本節(jié)中將介紹如何填充數(shù)據(jù)中的時(shí)間間隔。

  • 這是什么意思?

時(shí)間序列數(shù)據(jù)由是一段連續(xù)的時(shí)間產(chǎn)生的數(shù)據(jù)組成。如果在數(shù)據(jù)集中有一些缺失的數(shù)據(jù)會(huì)就會(huì)在時(shí)間間隔上產(chǎn)生裂縫

  • 為什么需要它?

如果給模型提供有空白的數(shù)據(jù),模型會(huì)立即崩潰,這是我們不想看到的。

讓我們假設(shè)我們的數(shù)據(jù)集有一些空值序列。數(shù)據(jù)集看起來(lái)像這樣:

fig, ax = plt.subplots(figsize=(15, 6))
df_with_gap['VPact (mbar)'].plot(ax=ax,xlabel='Time', ylabel='VPact (mbar)')

圖片

  • 如何填充空白

我們嘗試各種各樣的值來(lái)填補(bǔ)這一空白。但是沒有一個(gè)是標(biāo)準(zhǔn),因?yàn)樗械奶畛渲刀贾皇菍?duì)實(shí)際值的廣義猜測(cè)。

在這個(gè)的例子中,我只展示其中一種填充方法,其他的方法都與其類似。這里將使用正向填充法。這個(gè)方法遍歷我數(shù)據(jù)集,并獲取它在遇到空白之前讀取的最后一個(gè)值,并用最后一個(gè)值填充整個(gè)空白。這個(gè)方法雖然簡(jiǎn)單,但在很多情況下還是有用的。

df_with_gap = df_with_gap['VPact (mbar)'].fillna(method="ffill")

我們還將它轉(zhuǎn)換成一個(gè)DF。

df_with_gap = df_with_gap.to_frame()

現(xiàn)在讓我們看看數(shù)據(jù)集。應(yīng)該看一條完整的線,并且不包含空白的空間。

fig, ax = plt.subplots(figsize=(15, 6))
df_with_gap['VPact (mbar)'].plot(ax=ax,xlabel='Time', ylabel='VPact (mbar)')

圖片

缺失的數(shù)據(jù)現(xiàn)在已經(jīng)被補(bǔ)齊了。

總結(jié)

以上就是3個(gè)常用的時(shí)間數(shù)據(jù)處理的操作,希望對(duì)你有幫助。

本文源代碼

??https://www.kaggle.com/code/muhammadhammad02/wrangling-concepts-with-time-series-data??

責(zé)任編輯:華軒 來(lái)源: DeepHub IMBA
相關(guān)推薦

2023-07-28 09:00:00

NLP開源工具

2021-08-05 13:49:39

Python工具開發(fā)

2024-05-08 14:05:03

時(shí)間序列數(shù)據(jù)

2017-02-16 10:45:57

桌面Wiki

2020-02-02 14:45:55

聯(lián)系人開源工具

2019-06-12 16:21:52

時(shí)間序列PythonPandas

2024-10-23 17:10:49

2024-11-04 15:34:01

2023-09-08 13:11:00

NumPyPandasPython庫(kù)

2022-04-14 14:09:25

數(shù)據(jù)治理數(shù)字化轉(zhuǎn)型工具

2022-04-25 14:27:05

Pandas函數(shù)數(shù)據(jù)

2023-04-26 11:14:11

IT領(lǐng)導(dǎo)者遠(yuǎn)程工作

2017-12-25 13:58:23

匿名函數(shù)普通函數(shù)代碼

2022-08-26 09:38:39

Pandas數(shù)據(jù)查詢

2025-04-03 10:00:00

數(shù)據(jù)分析Pandas數(shù)據(jù)合并

2009-11-10 12:12:57

VB.NET函數(shù)

2022-10-10 14:36:44

Python時(shí)間序列機(jī)器學(xué)習(xí)

2021-12-02 06:14:50

數(shù)據(jù)勒索勒索軟件攻擊

2013-01-06 11:01:59

大數(shù)據(jù)分析

2013-12-18 13:06:33

數(shù)據(jù)庫(kù)安全安全審計(jì)啟明星辰
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)