
Problémové prohlášení
Předpokládejme, že máme datovou sadu časových řad, která obsahuje denní údaje o prodeji maloobchodu za rok. Naším úkolem je analyzovat tento soubor dat a vypočítat 7denní klouzavý průměr prodeje, abychom vyhladili potenciální anomálie, identifikovali trendy a řídili obchodní rozhodnutí. Pro analýzu dat budeme používat Python, známý a široce používaný programovací jazyk.
Přístup k řešení
Chcete-li vyřešit problém s rolovacím oknem, budeme postupovat takto:
- Importujte potřebné knihovny
- Načtěte datovou sadu
- Vytvořte rolovací okno
- Vypočítejte 7denní klouzavý průměr
- Vizualizujte výsledky
Začněme importem požadovaných knihoven a načtením datové sady.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Load dataset (Assuming the dataset is a CSV file)
data = pd.read_csv('sales_data.csv')
# Preview the dataset
print(data.head())
Po načtení datové sady nyní přistoupíme k vytvoření rolovacího okna.
Vytvoření rolovacího okna
Obracíme se k mocným Pandy knihovny k vytvoření rolovacího okna pomocí rolling() funkce. Rolling window bude mít velikost 7 dní, protože chceme vypočítat 7denní klouzavý průměr.
# Create a rolling window of 7 days rolling_window = data['sales'].rolling(window=7)
Nyní, když máme klouzavé okno, můžeme vypočítat 7denní klouzavý průměr.
Výpočet 7denního klouzavého průměru
Abychom našli 7denní klouzavý průměr tržeb, jednoduše zavoláme mean() funkce na našem objektu rolovacího okna. Tento nový klouzavý průměr pak přidáme jako nový sloupec v naší datové sadě.
# Calculate the moving average data['7_day_avg'] = rolling_window.mean() # Preview the updated dataset print(data.head(10))
Nakonec si naše výsledky vizualizujme, abychom lépe porozuměli trendům v našich datech.
Vizualizace výsledků
Použijeme populární matplotlib Knihovna pro vytvoření jednoduchého spojnicového grafu zobrazujícího jak denní údaje o prodeji, tak náš vypočítaný 7denní klouzavý průměr.
# Plot the daily sales data
plt.plot(data['sales'], label='Daily Sales')
# Plot the 7-day moving average
plt.plot(data['7_day_avg'], label='7-Day Moving Average', color='red')
# Add labels and legend
plt.xlabel('Days')
plt.ylabel('Sales')
plt.title('Daily Sales and 7-Day Moving Average')
plt.legend()
# Display the plot
plt.show()
Vygenerovaný graf zobrazuje údaje o denním prodeji spolu se 7denním klouzavým průměrem, což nám usnadňuje identifikaci trendů a anomálií.
Závěrem lze říci, že rolovací okno je široce využíváno v analýze dat, konkrétně časových řad, pro svou schopnost odhalit skryté vzorce a trendy v rámci velkých datových sad. Kombinace Pythonu, Pandas a Matplotlib zjednodušuje proces výpočtu klouzavého průměru a vizualizace výsledků, což z něj činí přístupný předmět pro začátečníky i odborníky v oboru.