Izjava o problemu
Pretpostavimo da imamo skup podataka vremenske serije koji sadrži dnevne podatke o prodaji maloprodajne trgovine za godinu dana. Naš je zadatak analizirati ovaj skup podataka i izračunati 7-dnevni tekući prosjek prodaje kako bismo izgladili potencijalne anomalije, identificirali trendove i vodili poslovne odluke. Koristit ćemo Python, dobro poznati i naširoko korišteni programski jezik za analizu podataka.
Pristup rješenju
Da bismo riješili problem rolling window-a, slijedit ćemo ove korake:
- Uvezite potrebne biblioteke
- Učitajte skup podataka
- Napravite pokretni prozor
- Izračunajte 7-dnevni pomični prosjek
- Vizualizirajte rezultate
Počnimo s uvozom potrebnih biblioteka i učitavanjem skupa podataka.
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())
Nakon učitavanja skupa podataka, sada nastavljamo sa stvaranjem pokretnog prozora.
Stvaranje Rolling Window
Okrećemo se moćnicima pande knjižnica za stvaranje pokretnog prozora pomoću rolling() funkcija. Pokretni prozor će imati veličinu od 7 dana, jer želimo izračunati 7-dnevni pomični prosjek.
# Create a rolling window of 7 days rolling_window = data['sales'].rolling(window=7)
Sada kada imamo pokretni prozor, možemo izračunati 7-dnevni pomični prosjek.
Izračunavanje 7-dnevnog pomičnog prosjeka
Da bismo pronašli 7-dnevni pomični prosjek prodaje, jednostavno pozivamo mean() funkciju na našem objektu rolo prozora. Zatim dodajemo ovaj novi pomični prosjek kao novi stupac u našem skupu podataka.
# Calculate the moving average data['7_day_avg'] = rolling_window.mean() # Preview the updated dataset print(data.head(10))
Na kraju, vizualizirajmo svoje rezultate kako bismo bolje razumjeli trendove u našim podacima.
Vizualizacija rezultata
Koristit ćemo se popularnim matplotlib biblioteku za izradu jednostavnog linijskog grafikona koji prikazuje podatke o dnevnoj prodaji i naš izračunati 7-dnevni pomični prosjek.
# 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()
Generirani grafikon prikazuje dnevne podatke o prodaji zajedno sa 7-dnevnim pomičnim prosjekom, što nam olakšava prepoznavanje trendova i anomalija.
Zaključno, pokretni prozor široko se koristi u analizi podataka, posebno vremenskih serija, zbog svoje sposobnosti otkrivanja skrivenih obrazaca i trendova unutar velikih skupova podataka. Kombinacija Pythona, Pandasa i Matplotliba pojednostavljuje proces izračunavanja pomičnog prosjeka i vizualizacije rezultata, što ga čini pristupačnim predmetom i za početnike i za stručnjake u tom području.