日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一、簡介

時間序列數(shù)據(jù)蘊含著很大價值,通過重采樣技術(shù)可以提升原始數(shù)據(jù)的表現(xiàn)形式。無論你是數(shù)據(jù)科學(xué)家、分析師,還是對數(shù)據(jù)挖掘感興趣,都可以從本文學(xué)習(xí)方法和工具,提升數(shù)據(jù)可視化技巧。

二、為什么需要進(jìn)行數(shù)據(jù)重采樣?

在進(jìn)行時間數(shù)據(jù)可視化時,數(shù)據(jù)重采樣是至關(guān)重要且非常有用的。它支持控制數(shù)據(jù)的粒度,以挖掘數(shù)據(jù)價值,并創(chuàng)建具有吸引力的圖片。用戶可以根據(jù)需求,對時間序列數(shù)據(jù)的頻率進(jìn)行上采樣或下采樣。

使用Pandas進(jìn)行時間重采樣,充分挖掘數(shù)據(jù)價值圖片

三、數(shù)據(jù)重采樣的方法

數(shù)據(jù)重采樣主要有以下兩個目的:

  • 調(diào)整粒度:通過數(shù)據(jù)采集可以修改收數(shù)據(jù)點的時間間隔,只獲取關(guān)鍵信息,剔除噪音數(shù)據(jù),提升數(shù)據(jù)可視化效果。
  • 對齊:重采樣還有助于將來自不同時間間隔的多個數(shù)據(jù)源進(jìn)行對齊,確保在創(chuàng)建可視化或進(jìn)行分析時保持一致性。

例如,對于某家公司的每日股價數(shù)據(jù),該數(shù)據(jù)來自股票交易所,對其進(jìn)行可視化,挖掘長期趨勢,并剔除噪音數(shù)據(jù)點。為此,可以通過取每月的平均收盤價,將每日數(shù)據(jù)重采樣為每月頻率,從而降低用于可視化的數(shù)據(jù)量,提升數(shù)據(jù)可視化的效果。

import pandas as pd

# 每日股票價格數(shù)據(jù)樣本
data = {
'Date': pd.date_range(start='2023-01-01', periods=365, freq='D'),
'StockPrice': [100 + i + 10 * (i % 7) for i in range(365)]
}
df = pd.DataFrame(data)

# 按月頻率重采樣
monthly_data = df.resample('M', notallow='Date').mean()
print(monthly_data.head())

這個例子通過將每日數(shù)據(jù)重采樣為每月數(shù)據(jù),并計算出每月的平均收盤價,從而得到了更平滑、噪聲更小的股價數(shù)據(jù),從而更容易識別長期趨勢和規(guī)律,以便做出決策。

3.1、選擇正確的重采樣頻率

處理時間序列數(shù)據(jù)時,重采樣的主要參數(shù)是頻率,必須正確選擇頻率,才能獲得具有洞察力和實用的可視化效果。不過,粒度和清晰度之間存在著權(quán)衡,粒度表示數(shù)據(jù)的詳細(xì)程度,而清晰度則表示數(shù)據(jù)規(guī)律的展現(xiàn)程度。

例如,對于一年內(nèi)每分鐘記錄的溫度數(shù)據(jù),對年度溫度趨勢進(jìn)行可視化,但使用分鐘級數(shù)據(jù)將導(dǎo)致圖形過于密集和混亂。另外,如果將數(shù)據(jù)聚合為年度平均值,可能會丟失有價值的信息。

# 采集分鐘級溫度數(shù)據(jù)
data = {
    'Timestamp': pd.date_range(start='2023-01-01', periods=525600, freq='T'),
    'Temperature': [20 + 10 * (i % 1440) / 1440 for i in range(525600)]
}

df = pd.DataFrame(data)

# 按不同頻率重采樣
dAIly_avg = df.resample('D', notallow='Timestamp').mean()
monthly_avg = df.resample('M', notallow='Timestamp').mean()
yearly_avg = df.resample('Y', notallow='Timestamp').mean()

print(daily_avg.head())
print(monthly_avg.head())
print(yearly_avg.head())

此示例將分鐘級溫度數(shù)據(jù)重采樣為日平均值、月平均值和年平均值。根據(jù)分析或可視化目標(biāo),可以選擇最適合的詳頻率。每日平均值揭示了每日的溫度規(guī)律,而每年平均值展示了年度趨勢。

通過選擇最佳的重采樣頻率,可以在數(shù)據(jù)細(xì)節(jié)和可視化清晰度之間取得平衡,進(jìn)而傳達(dá)數(shù)據(jù)中的規(guī)律和價值。

3.2、聚合方法

在處理時間數(shù)據(jù)時,了解各種聚合方法非常重要。通過這些方法,可以有效地總結(jié)和分析數(shù)據(jù),揭示時間相關(guān)信息的不同方面。標(biāo)準(zhǔn)的聚合方法包括計算總和與平均值,或應(yīng)用自定義函數(shù)。

使用Pandas進(jìn)行時間重采樣,充分挖掘數(shù)據(jù)價值圖片

例如,對于包含一年內(nèi)零售店每日銷售數(shù)據(jù)的數(shù)據(jù)集,對其進(jìn)行年度收入趨勢分析。為此,你可以使用聚合方法計算每月和每年的總銷售額。

# 每日銷售數(shù)據(jù)樣本
data = {
'Date': pd.date_range(start='2023-01-01', periods=365, freq='D'),
'Sales': [1000 + i * 10 + 5 * (i % 30) for i in range(365)]
}
df = pd.DataFrame(data)

# 使用聚合方法計算每月和每年的銷售額
monthly_totals = df.resample('M', notallow='Date').sum()
yearly_totals = df.resample('Y', notallow='Date').sum()

print(monthly_totals.head())
print(yearly_totals.head())

此示例使用sum()聚合方法將每日銷售數(shù)據(jù)重采樣為每月和每年的總銷售額。通過該方法,可以分析在不同粒度級別上的銷售趨勢。月度總計揭示了季節(jié)變化,而年度總計則展示了年度業(yè)績。

根據(jù)具體的分析需求,還可以使用其他聚合方法,如計算平均值和中位數(shù),或根據(jù)數(shù)據(jù)集分布情況應(yīng)用自定義函數(shù),這對問題的解決很有意義。通過這些方法,可以用符合自己的分析或可視化目標(biāo)的方式對數(shù)據(jù)進(jìn)行總結(jié),從時間數(shù)據(jù)中提取更多價值。

3.3、處理缺失數(shù)據(jù)

處理缺失數(shù)據(jù)是時間序列中的關(guān)鍵點,可確保數(shù)據(jù)中存在間隙時,可視化和分析仍能保持準(zhǔn)確性和信息量。

例如,對于歷史溫度數(shù)據(jù)集,但由于設(shè)備故障或數(shù)據(jù)收集錯誤,某些日期的溫度讀數(shù)缺失。你必須處理這些缺失值,以創(chuàng)建有意義的可視化并保持?jǐn)?shù)據(jù)的完整性。

# 帶有缺失值的溫度數(shù)據(jù)樣本
data = {
    'Date': pd.date_range(start='2023-01-01', periods=365, freq='D'),
    'Temperature': [25 + np.random.randn() * 5 if np.random.rand() > 0.2 else np.nan for _ in range(365)]
}
df = pd.DataFrame(data)

# 前向填充缺失值(用前一天的溫度填充)
df['Temperature'].fillna(method='ffill', inplace=True)

# 可視化溫度數(shù)據(jù)
import matplotlib.pyplot as plt
plt.figure(figsize=(12, 6))
plt.plot(df['Date'], df['Temperature'], label='Temperature', color='blue')
plt.title('Daily Temperature Over Time')
plt.xlabel('Date')
plt.ylabel('Temperature (°C)')
plt.grid(True)
plt.show()

輸出圖形如下所示:

使用Pandas進(jìn)行時間重采樣,充分挖掘數(shù)據(jù)價值圖片

這個示例模擬了缺失的溫度值(約占數(shù)據(jù)的20%),然后使用前向填充(ffill)方法填充了缺失的部分,即缺失值被前一天的溫度替代。

處理缺失數(shù)據(jù)可確保可視化效果準(zhǔn)確地反映時間序列中的基本趨勢和規(guī)律,防止空缺數(shù)據(jù)影響整體數(shù)據(jù)。根據(jù)數(shù)據(jù)的性質(zhì)和具體問題,可以采用插值或向后填充等其他策略。

3.4、可視化趨勢和規(guī)律

在Pandas中進(jìn)行數(shù)據(jù)重采樣,有助于可視化連續(xù)或離散時間數(shù)據(jù)中的趨勢和規(guī)律,進(jìn)一步挖掘數(shù)據(jù)價值,突出顯示不同的組成部分,包括趨勢、季節(jié)性和不規(guī)則問題(可能是數(shù)據(jù)中的噪音)。

例如,對于包含過去幾年每日網(wǎng)站流量數(shù)據(jù)的數(shù)據(jù)集,目標(biāo)是可視化展示隨后幾年的整體流量趨勢,識別任何季節(jié)性規(guī)律,并發(fā)現(xiàn)流量中不規(guī)則的峰值或谷值。

# 網(wǎng)站每日流量數(shù)據(jù)樣本
data = {
'Date': pd.date_range(start='2019-01-01', periods=1095, freq='D'),
'Visitors': [500 + 10 * ((i % 365) - 180) + 50 * (i % 30) for i in range(1095)]
}
df = pd.DataFrame(data)

# 創(chuàng)建折線圖,展示趨勢
plt.figure(figsize=(12, 6))
plt.plot(df['Date'], df['Visitors'], label='Daily Visitors', color='blue')
plt.title('Website Traffic Over Time')
plt.xlabel('Date')
plt.ylabel('Visitors')
plt.grid(True)

# 添加季節(jié)性分解圖
from statsmodels.tsa.seasonal import seasonal_decompose
result = seasonal_decompose(df['Visitors'], model='additive', freq=365)
result.plot()
plt.show()

輸出如下所示:

使用Pandas進(jìn)行時間重采樣,充分挖掘數(shù)據(jù)價值圖片

該示例創(chuàng)建了折線圖,展示了隨時間變化的每日網(wǎng)站流量趨勢。該圖描述了數(shù)據(jù)集中的整體增長和不規(guī)則規(guī)律。此外,為了將數(shù)據(jù)分解為不同的組成部分,本文使用了statsmodels庫的季節(jié)性分解技術(shù),包括趨勢、季節(jié)性和殘差等組成部分。

通過這種方式,可以展示網(wǎng)站流量的趨勢、季節(jié)性和異常情況,從時間數(shù)據(jù)挖掘價值,進(jìn)而將其轉(zhuǎn)化為數(shù)據(jù)驅(qū)動的決策。

四、總結(jié)

【下載代碼】:https://colab.research.google.com/drive/19oM7NMdzRgQrEDfRsGhMavSvcHx79VDK#scrollTo=nHg3oSjPfS-Y

  1. 重采樣是一種強(qiáng)大的方法,可用于轉(zhuǎn)換和匯總時間序列數(shù)據(jù),以挖掘數(shù)據(jù)價值。
  2. 選擇事宜的重采樣頻率對于平衡粒度和清晰度至關(guān)重要。
  3. 聚合方法(如求和、平均值和自定義函數(shù)等)有助于揭示時間數(shù)據(jù)的不同方面。
  4. 可視化方法有助于識別趨勢、季節(jié)性和不規(guī)則問題,從而清晰地展示數(shù)據(jù)中的規(guī)律。

分享到:
標(biāo)簽:Pandas
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達(dá)人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定