欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中的時序分析和可視化案例詳解

 更新時間:2024年02月29日 09:32:38   作者:python收藏家  
每個數(shù)據(jù)集都有自己的特征,我們使用它們的特征作為特征來深入了解數(shù)據(jù),在本文中,我們將討論一種重要的數(shù)據(jù)集,即時間序列數(shù)據(jù),感興趣的可以了解下

每個數(shù)據(jù)集都有自己的特征,我們使用它們的特征作為特征來深入了解數(shù)據(jù)。在本文中,我們將討論一種重要的數(shù)據(jù)集,即時間序列數(shù)據(jù)。

什么是時間序列數(shù)據(jù)

時間序列數(shù)據(jù)是按連續(xù)時間順序列出的一系列數(shù)據(jù)點(diǎn),或者我們可以說時間序列數(shù)據(jù)是時間上連續(xù)等間隔點(diǎn)的序列。時間序列分析包括分析時間序列數(shù)據(jù)的方法,以提取有意義的見解和數(shù)據(jù)的其他有價值的特征。

時間序列數(shù)據(jù)是按連續(xù)時間順序列出的一系列數(shù)據(jù)點(diǎn),或者我們可以說時間序列數(shù)據(jù)是時間上連續(xù)等間隔點(diǎn)的序列。時間序列分析包括分析時間序列數(shù)據(jù)的方法,以提取有意義的見解和數(shù)據(jù)的其他有價值的特征。

使用Python實(shí)現(xiàn)時間序列數(shù)據(jù)可視化

我們將使用Python庫來可視化數(shù)據(jù)。數(shù)據(jù)集的鏈接可以在這里找到。

https://github.com/Neelu-Tiwari/dataset/blob/main/stock_data.csv

我們將像在任何時間序列數(shù)據(jù)項目中一樣一步一步地執(zhí)行可視化。

導(dǎo)入庫

我們將在一個地方導(dǎo)入本文中使用的所有庫,這樣就不必每次使用時都導(dǎo)入,這將保存我們的時間和精力。

Numpy -一個用于數(shù)值數(shù)學(xué)計算和處理多維ndarray的Python庫,它也有一個非常大的數(shù)學(xué)函數(shù)集合來操作這個數(shù)組。

Pandas -一個構(gòu)建在NumPy之上的Python庫,用于有效的矩陣乘法和矩陣操作,它也用于數(shù)據(jù)清理,數(shù)據(jù)合并,數(shù)據(jù)整形和數(shù)據(jù)聚合。

Matplotlib -它用于繪制2D和3D可視化圖,它還支持各種輸出格式,包括數(shù)據(jù)圖形。

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

加載數(shù)據(jù)集

為了將數(shù)據(jù)集加載到一個框架中,我們將使用pandas read_csv()函數(shù)。我們將使用head()函數(shù)打印數(shù)據(jù)集的前五行。在這里,我們將在read_csv函數(shù)中使用’parse_dates’參數(shù)將’Date’列轉(zhuǎn)換為DatetimeIndex格式。默認(rèn)情況下,日期以字符串格式存儲,這不是時間序列數(shù)據(jù)分析的正確格式。

# reading the dataset using read_csv
df = pd.read_csv("stock_data.csv", 
				parse_dates=True, 
				index_col="Date")

# displaying the first five rows of dataset
df.head()

輸出

            Unnamed: 0   Open   High    Low  Close    Volume  Name
Date                                                              
2006-01-03         NaN  39.69  41.22  38.79  40.91  24232729  AABA
2006-01-04         NaN  41.22  41.90  40.77  40.97  20553479  AABA
2006-01-05         NaN  40.93  41.73  40.85  41.53  12829610  AABA
2006-01-06         NaN  42.88  43.57  42.80  43.21  29422828  AABA
2006-01-09         NaN  43.10  43.66  42.82  43.42  16268338  AABA

刪除不需要的列

我們將從數(shù)據(jù)集中刪除對我們的可視化不重要的列。

# deleting column
df.drop(columns='Unnamed: 0')

輸出

             Open   High    Low  Close    Volume  Name
Date                                                  
2006-01-03  39.69  41.22  38.79  40.91  24232729  AABA
2006-01-04  41.22  41.90  40.77  40.97  20553479  AABA
2006-01-05  40.93  41.73  40.85  41.53  12829610  AABA
2006-01-06  42.88  43.57  42.80  43.21  29422828  AABA
2006-01-09  43.10  43.66  42.82  43.42  16268338  AABA

繪制時間序列數(shù)據(jù)的線圖

df['Volume'].plot()

在這里,我們繪制了“Volume”列數(shù)據(jù)。

現(xiàn)在讓我們使用子圖繪制所有其他列。

df.plot(subplots=True, figsize=(4, 4))

上面使用的線圖很好地顯示了季節(jié)性。

季節(jié)性:在時間序列數(shù)據(jù)中,季節(jié)性是指在小于一年的特定規(guī)則時間間隔(如每周、每月或每季度)發(fā)生的變化。

重采樣:重采樣是一種經(jīng)濟(jì)地使用數(shù)據(jù)樣本來提高總體參數(shù)的準(zhǔn)確性和量化總體參數(shù)的不確定性的方法。采樣幾個月或幾個星期,制作條形圖是另一種非常簡單和廣泛使用的尋找季節(jié)性的方法。在這里,我們將繪制2016年和2017年月份數(shù)據(jù)的條形圖。

重采樣并繪制數(shù)據(jù)

# Resampling the time series data based on monthly 'M' frequency
df_month = df.resample("M").mean()

# using subplot
fig, ax = plt.subplots(figsize=(6, 6))

# plotting bar graph
ax.bar(df_month['2016':].index, 
	df_month.loc['2016':, "Volume"], 
	width=25, align='center')

圖中有24個條形,每個條形代表一個月。

差分:差分用于計算指定區(qū)間的值之間的差異。默認(rèn)情況下,它是一個,我們可以為圖指定不同的值。這是刪除數(shù)據(jù)中趨勢的最常用方法。

df.Low.diff(2).plot(figsize=(6, 6))

df.High.diff(2).plot(figsize=(10, 6))

數(shù)據(jù)集中的趨勢

我們可以在數(shù)據(jù)集中看到趨勢的變化,趨勢可以幫助我們看到我們正在考慮的數(shù)據(jù)的價值從長遠(yuǎn)來看是上升還是下降。

# Finding the trend in the "Open"
# column using moving average method
window_size = 50
rolling_mean = df['Open'].rolling\
			(window_size).mean()
rolling_mean.plot()

繪制數(shù)據(jù)隨時間的變化

我們還可以繪制數(shù)據(jù)隨時間發(fā)生的變化。有幾種方法可以繪制數(shù)據(jù)的變化。

Shift:Shift函數(shù)可用于在指定的時間間隔之前或之后移動數(shù)據(jù)。我們可以指定時間,默認(rèn)情況下將數(shù)據(jù)移動一天。這意味著我們將獲得前一天的數(shù)據(jù)。同時查看前一天的數(shù)據(jù)和今天的數(shù)據(jù)是有幫助的。

在這段代碼中,.div()函數(shù)幫助填充缺少的數(shù)據(jù)值。如果我們使用df.div(6)它將把df中的每個元素除以6。我們這樣做是為了避免’shift()'操作創(chuàng)建的null或缺失值。

在這里,我們使用了.div(df.Close.shift()),它會將df的每個值除以df.Close.shift()以去除空值。

df['Change'] = df.Close.div(df.Close.shift())
df['Change'].plot(figsize=(10, 8), fontsize=16)

我們也可以采取一個特定的時間間隔使圖形有一個更清晰的外觀。這里我們只繪制了2017年的數(shù)據(jù)。

df['2017']['Change'].plot(figsize=(10, 6))

時間序列數(shù)據(jù)集中的箱形圖

我們還可以使用箱線圖來查看特定列中值的分布。讓我們以任務(wù)為例。在這里,我們使用datetime獲取一個名為Year的新列。然后我們在Y軸上取“Open”列。

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

# reading the dataset using read_csv
df = pd.read_csv("stock_data.csv", parse_dates=True)
df.drop(columns='Unnamed: 0', inplace=True)

df['Date']= pd.to_datetime(df['Date'])

# extract year from date column
df["Year"] = df["Date"].dt.year

# box plot grouped by year
sns.boxplot(data=df, x="Year", y="Open")

到此這篇關(guān)于Python中的時序分析和可視化案例詳解的文章就介紹到這了,更多相關(guān)Python時序分析內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解用Python調(diào)用百度地圖正/逆地理編碼API

    詳解用Python調(diào)用百度地圖正/逆地理編碼API

    這篇文章主要介紹了詳解用Python調(diào)用百度地圖正/逆地理編碼API,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • python生成器表達(dá)式和列表解析

    python生成器表達(dá)式和列表解析

    最近在學(xué)習(xí)python的過程中,對列表解析及生成器表達(dá)式有點(diǎn)疑惑。從表面上看,兩者很相似,只有一點(diǎn)不同:列表解析采用中括號[]來包含,生成器表達(dá)式采用小括號()來包含。本文我們就來詳細(xì)看下python生成器表達(dá)式和列表解析
    2016-03-03
  • Python數(shù)據(jù)分析模塊pandas用法詳解

    Python數(shù)據(jù)分析模塊pandas用法詳解

    這篇文章主要介紹了Python數(shù)據(jù)分析模塊pandas用法,結(jié)合實(shí)例形式詳細(xì)分析了Python數(shù)據(jù)分析模塊pandas的功能、常見用法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-09-09
  • Python實(shí)現(xiàn)ssh批量登錄并執(zhí)行命令

    Python實(shí)現(xiàn)ssh批量登錄并執(zhí)行命令

    本篇文章主要是介紹了Python實(shí)現(xiàn)ssh批量登錄并執(zhí)行命令,有一些任務(wù)可以進(jìn)行批量完成,Python就可以完成,有需要的同學(xué)可以了解一下。
    2016-10-10
  • Python+Pygame實(shí)戰(zhàn)之英文版猜字游戲的實(shí)現(xiàn)

    Python+Pygame實(shí)戰(zhàn)之英文版猜字游戲的實(shí)現(xiàn)

    這篇文章主要為大家介紹了如何利用Python中的Pygame模塊實(shí)現(xiàn)英文版猜單詞游戲,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python游戲開發(fā)有一定幫助,需要的可以參考一下
    2022-08-08
  • 如何修復(fù)使用 Python ORM 工具 SQLAlchemy 時的常見陷阱

    如何修復(fù)使用 Python ORM 工具 SQLAlchemy 時的常見陷阱

    SQLAlchemy 是一個 Python ORM 工具包,它提供使用 Python 訪問 SQL 數(shù)據(jù)庫的功能。這篇文章主要介紹了如何修復(fù)使用 Python ORM 工具 SQLAlchemy 時的常見陷阱,需要的朋友可以參考下
    2019-11-11
  • Python解析壓縮包內(nèi)部文件的后綴名并分類存放

    Python解析壓縮包內(nèi)部文件的后綴名并分類存放

    這篇文章主要為大家詳細(xì)介紹了如何使用Python解析壓縮包內(nèi)部文件的后綴名并分類存放,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • Python編程實(shí)現(xiàn)tail-n查看日志文件的方法

    Python編程實(shí)現(xiàn)tail-n查看日志文件的方法

    這篇文章主要介紹了Python編程實(shí)現(xiàn)tail-n查看日志文件的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 利用python繪制二三維曲面和矢量流線圖的代碼示例

    利用python繪制二三維曲面和矢量流線圖的代碼示例

    這篇文章主要給大家詳細(xì)介紹了如何利用python繪制二三維曲面和矢量流線圖,文中通過代碼示例介紹的非常詳細(xì),對我們學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-07-07
  • Python中圖像算術(shù)運(yùn)算的示例詳解

    Python中圖像算術(shù)運(yùn)算的示例詳解

    還記得你在小學(xué)時學(xué)習(xí)如何加減數(shù)字嗎?現(xiàn)在,你也可以對圖像做同樣的事情!輸入圖像可以進(jìn)行算術(shù)運(yùn)算,例如加法、減法和按位運(yùn)算(AND、OR、NOT、XOR)。這些操作可以幫助提高輸入照片的質(zhì)量。本文將詳解一下這些運(yùn)算,需要的可以參考一下
    2022-05-05

最新評論