ΕισαγωγήΤο Python, το 2025, συνεχίζει να είναι ο αδιαμφισβήτητος βασιλιάς της επιστήμης δεδομένων και της μηχανικής μάθησης. Ως μηχανικός λογισμικού, η εργασία με δεδομένα δεν είναι πλέον προαιρετική, αλλά σχεδόν υποχρεωτική. Σε αυτό το άρθρο, θα ξεκινήσουμε από το μηδέν με χειρισμό δεδομένων με Pandas, και επαγγελματικές οπτικοποιήσεις με Matplotlib και Seaborn.
Παράδειγμα συνόλου δεδομένων: Αντί για το δημοφιλές σύνολο "Titanic" από το Kaggle, θα δημιουργήσουμε ένα απλό σύνολο δεδομένων πωλήσεων ηλεκτρονικού εμπορίου (μια δομή που μπορείς να χρησιμοποιήσεις σε πραγματικά έργα).
Τι θα μάθεις;- Ανάγνωση και καθαρισμός δεδομένων
- Ομαδοποίηση, φιλτράρισμα, πίνακες pivot
- Διάφοροι τύποι γραφημάτων (στήλες, γραμμές, διασπορά, χάρτες θερμότητας)
- Συμβουλές για επαγγελματική οπτικοποίηση
ΑπαιτήσειςPython 3.10+, εγκατάσταση βιβλιοθηκών με pip:
pip install pandas matplotlib seaborn jupyter1. Προετοιμασία Συνόλου ΔεδομένωνΣε πραγματικό έργο, θα διαβάζεις από 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. Βασικά Γραφήματα με Matplotlibimport 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