Python Οδηγός Δεδομένων: Pandas, Matplotlib, Seaborn

Ξίνηε από Sevfa, Δεκ 27, 2025, 02:47 ΜΜ

« προηγούενο - εόμνο »

Sevfa

Εισαγωγή
Το Python, το 2025, συνεχίζει να είναι ο αδιαμφισβήτητος βασιλιάς της επιστήμης δεδομένων και της μηχανικής μάθησης. Ως μηχανικός λογισμικού, η εργασία με δεδομένα δεν είναι πλέον προαιρετική, αλλά σχεδόν υποχρεωτική. Σε αυτό το άρθρο, θα ξεκινήσουμε από το μηδέν με χειρισμό δεδομένων με Pandas, και επαγγελματικές οπτικοποιήσεις με Matplotlib και Seaborn.

Παράδειγμα συνόλου δεδομένων: Αντί για το δημοφιλές σύνολο "Titanic" από το Kaggle, θα δημιουργήσουμε ένα απλό σύνολο δεδομένων πωλήσεων ηλεκτρονικού εμπορίου (μια δομή που μπορείς να χρησιμοποιήσεις σε πραγματικά έργα).

Τι θα μάθεις;
  • Ανάγνωση και καθαρισμός δεδομένων
  • Ομαδοποίηση, φιλτράρισμα, πίνακες pivot
  • Διάφοροι τύποι γραφημάτων (στήλες, γραμμές, διασπορά, χάρτες θερμότητας)
  • Συμβουλές για επαγγελματική οπτικοποίηση

Απαιτήσεις
Python 3.10+, εγκατάσταση βιβλιοθηκών με pip:
Κώδικας [Επιογή]
pip install pandas matplotlib seaborn jupyter
1. Προετοιμασία Συνόλου Δεδομένων
Σε πραγματικό έργο, θα διαβάζεις από CSV ή Excel. Εδώ θα παράγουμε δείγμα δεδομένων με κώδικα:
Κώδικας [Επιογή]
import pandas as pd
import numpy as np

# Τυχαία αλλά ρεαλιστικά δεδομένα ηλεκτρονικού εμπορίου
np.random.seed(42)
data = {
    'IDΠελάτη': np.arange(1, 201),
    'ΚατηγορίαΠροϊόντος': np.random.choice(['Τηλέφωνο', 'Λάπτοπ', 'Ακουστικά', 'Πίνακας'], 200),
    'ΠοσότηταΠωλήσεων': np.random.randint(1, 15, 200),
    'Τιμή': np.random.uniform(500, 45000, 200).round(2),
    'Ημερομηνία': pd.date_range(start='2024-01-01', periods=200, freq='D'),
    'Πόλη': np.random.choice(['Αθήνα', 'Θεσσαλονίκη', 'Πάτρα', 'Ηράκλειο', 'Λάρισα'], 200)
}

df = pd.DataFrame(data)
df['ΣυνολικόΠοσό'] = df['ΠοσότηταΠωλήσεων'] * df['Τιμή']
df.head()

2. Εξερεύνηση και Καθαρισμός Δεδομένων (EDA)
Κώδικας [Επιογή]
# Βασικές πληροφορίες
print(df.info())
print(df.describe())

# Έλεγχος ελλιπών δεδομένων (στο δικό μας σύνολο δεν υπάρχουν, αλλά είναι σημαντικό σε πραγματικά)
df.isnull().sum()

# Ανάλυση κατηγορικών μεταβλητών
df['ΚατηγορίαΠροϊόντος'].value_counts()

3. Προχωρημένος Χειρισμός με Pandas
Βρίσκουμε την κατηγορία με τις περισσότερες πωλήσεις:
Κώδικας [Επιογή]
# Ομαδοποίηση και συνολικό ποσό
κατηγορία_σύνολο = df.groupby('ΚατηγορίαΠροϊόντος')['ΣυνολικόΠοσό'].sum().sort_values(ascending=False)
print(κατηγορία_σύνολο)

# Μέσος όρος παραγγελίας ανά πόλη
πόλη_μέσος = df.groupby('Πόλη')['ΣυνολικόΠοσό'].mean().round(2)
print(πόλη_μέσος)

# Πίνακας pivot: Μήτρα Κατηγορία x Πόλη
pivot = df.pivot_table(values='ΣυνολικόΠοσό', index='ΚατηγορίαΠροϊόντος', columns='Πόλη', aggfunc='sum')
print(pivot)

4. Βασικά Γραφήματα με Matplotlib
Κώδικας [Επιογή]
import matplotlib.pyplot as plt

plt.figure(figsize=(10, 6))
κατηγορία_σύνολο.plot(kind='bar', color='skyblue')
plt.title('Κατηγορίες Προϊόντων Βάσει Συνολικού Ποσού Πωλήσεων (2024-2025)')
plt.xlabel('Κατηγορία Προϊόντος')
plt.ylabel('Συνολικό Ποσό (Ευρώ)')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

5. Επαγγελματική Οπτικοποίηση με Seaborn
Το Seaborn είναι πολύ πιο όμορφο και γρήγορο:
Κώδικας [Επιογή]
import seaborn as sns

# Γράφημα κουτιού (boxplot) - Κατανομή τιμών
plt.figure(figsize=(12, 6))
sns.boxplot(x='ΚατηγορίαΠροϊόντος', y='Τιμή', data=df, palette='Set2')
plt.title('Κατανομή Τιμών Βάσει Κατηγοριών Προϊόντων')
plt.show()

# Χάρτης θερμότητας (heatmap) - Σχέση Πόλης και Κατηγορίας
plt.figure(figsize=(10, 8))
sns.heatmap(pivot, annot=True, fmt='.0f', cmap='YlGnBu')
plt.title('Συνολικές Πωλήσεις Κατηγοριών Ανά Πόλη')
plt.show()

# Γράφημα γραμμής - Χρονική σειρά
df['Μήνας'] = df['Ημερομηνία'].dt.to_period('M')
μηνιαίο_σύνολο = df.groupby('Μήνας')['ΣυνολικόΠοσό'].sum()
μηνιαίο_σύνολο.plot(kind='line', marker='o', figsize=(12, 6))
plt.title('Τάση Μηνιαίων Συνολικών Πωλήσεων')
plt.show()


Συμπέρασμα και Επόμενα Βήματα
Με αυτόν τον οδηγό, έχτισες μια βασική γραμμή ανάλυσης δεδομένων. Σε πραγματικά έργα:
  • Για μεγάλα σύνολα δεδομένων, χρησιμοποίησε Dask ή Polars
  • Πρόσθεσε Plotly ή Altair για διαδραστικά γραφήματα
  • Μετατρέψτε σε dashboard με Streamlit / Dash