Φιλτράρισμα σειρών σε Pandas DataFrames
Το Pandas είναι μια ισχυρή βιβλιοθήκη στην Python για χειρισμό και ανάλυση δεδομένων. Μια συνηθισμένη εργασία είναι η επιλογή γραμμών από ένα DataFrame με βάση τις τιμές στηλών, παρόμοια με τον πίνακα SELECT * FROM της SQL WHERE στήλη_όνομα = some_value.
Αυτός ο οδηγός θα σας καθοδηγήσει σε διάφορες μεθόδους για να το πετύχετε αυτό στα Pandas, διευκολύνοντας το αποτελεσματικό φιλτράρισμα των δεδομένων σας. Είτε είστε αρχάριος είτε έμπειρος χρήστης, αυτές οι συμβουλές θα βελτιώσουν τις δεξιότητές σας στο χειρισμό δεδομένων.
Εντολή | Περιγραφή |
---|---|
pd.DataFrame(data) | Δημιουργεί ένα DataFrame από ένα λεξικό δεδομένων. |
df[column_name] | Έχει πρόσβαση σε μια στήλη στο DataFrame με το όνομα. |
df[condition] | Φιλτράρει το DataFrame με βάση μια συνθήκη που εφαρμόζεται σε μια στήλη. |
print(selected_rows) | Εκτυπώνει το DataFrame ή ένα υποσύνολο αυτού στην κονσόλα. |
df[df['Age'] >df[df['Age'] > 25] | Επιλέγει γραμμές όπου οι τιμές της στήλης "Ηλικία" είναι μεγαλύτερες από 25. |
df[df['City'] == 'Chicago'] | Επιλέγει σειρές όπου οι τιμές της στήλης "Πόλη" είναι ίσες με "Σικάγο". |
Κατανόηση της επιλογής σειράς DataFrame στα Pandas
Τα σενάρια που παρέχονται δείχνουν πώς να επιλέγετε σειρές από ένα DataFrame με βάση τις τιμές στηλών χρησιμοποιώντας τη βιβλιοθήκη Pandas στην Python. Το πρώτο σενάριο ξεκινάει εισάγοντας τη βιβλιοθήκη Pandas με το εντολή. Στη συνέχεια δημιουργεί ένα δείγμα DataFrame χρησιμοποιώντας ένα λεξικό δεδομένων, το οποίο μετατρέπεται σε DataFrame με το εντολή. Στη συνέχεια, το σενάριο απεικονίζει δύο μεθόδους για την επιλογή σειρών: επιλέγοντας σειρές όπου η τιμή της στήλης «Ηλικία» είναι μεγαλύτερη από 25 χρησιμοποιώντας , και επιλέγοντας γραμμές όπου η τιμή της στήλης "Πόλη" είναι "Σικάγο" χρησιμοποιώντας df[df['City'] == 'Chicago']. Αυτά τα φιλτραρισμένα DataFrame εκτυπώνονται χρησιμοποιώντας το λειτουργία για εμφάνιση των επιλεγμένων σειρών.
Το δεύτερο σενάριο ακολουθεί παρόμοια δομή, αλλά χρησιμοποιεί διαφορετικά δεδομένα και κριτήρια επιλογής. Δημιουργεί ένα DataFrame με πληροφορίες προϊόντος, συμπεριλαμβανομένων των στηλών «Προϊόν», «Τιμή» και «Απόθεμα». Οι σειρές επιλέγονται όπου η "Τιμή" είναι μικρότερη ή ίση με 200 με
Προηγμένες τεχνικές για την επιλογή σειρών DataFrame στα Panda
Εκτός από το βασικό φιλτράρισμα με χρήση δυαδικού ευρετηρίου, το Pandas προσφέρει προηγμένες τεχνικές για την επιλογή γραμμών με βάση τις τιμές στηλών. Μια ισχυρή μέθοδος είναι η χρήση του λειτουργία, η οποία σας επιτρέπει να φιλτράρετε σειρές με μια έκφραση ερωτήματος, καθιστώντας τη σύνταξη πιο καθαρή και συχνά πιο διαισθητική. Για παράδειγμα, αντί να χρησιμοποιείτε , μπορείς να γράψεις . Αυτή η μέθοδος είναι ιδιαίτερα χρήσιμη όταν αντιμετωπίζουμε πιο σύνθετες συνθήκες ή όταν τα ονόματα των στηλών περιέχουν κενά. Επιπλέον, το isin() Η λειτουργία είναι ευεργετική όταν θέλετε να φιλτράρετε σειρές με βάση μια λίστα τιμών. Για παράδειγμα, για να επιλέξετε σειρές όπου η τιμή της στήλης "Πόλη" είναι είτε "Σικάγο" ή "Νέα Υόρκη", μπορείτε να χρησιμοποιήσετε .
Μια άλλη τεχνική περιλαμβάνει το και δείκτες. ο ο δείκτης βασίζεται σε ετικέτες, επιτρέποντάς σας να επιλέξετε σειρές με βάση τις ετικέτες σειρών και τα ονόματα στηλών, ενώ iloc βασίζεται σε ακέραιο αριθμό, επιτρέποντας την επιλογή με αριθμούς σειρών και στηλών. Αυτή η ευελιξία είναι ιδιαίτερα χρήσιμη για την επιλογή γραμμών με βάση μια συνθήκη που εφαρμόζεται σε διαφορετική στήλη. Για παράδειγμα, θα επιστρέψει τα ονόματα ατόμων ηλικίας άνω των 25 ετών. Αυτές οι μέθοδοι επεκτείνουν την εργαλειοθήκη σας για αποτελεσματικό χειρισμό και ανάλυση δεδομένων στα Panda, προσφέροντας πιο ευανάγνωστο και διατηρήσιμο κώδικα.
- Πώς μπορώ να επιλέξω σειρές με βάση πολλαπλές συνθήκες;
- Μπορείτε να χρησιμοποιήσετε το λειτουργούν ή συνδυάζουν συνθήκες με λογικούς τελεστές όπως και . Για παράδειγμα, df[(df['Age'] > 25) & (df['City'] == 'Chicago')].
- Μπορώ να φιλτράρω σειρές με βάση μια λίστα τιμών;
- Ναι, χρησιμοποιήστε το λειτουργία. Για παράδειγμα, .
- Ποια είναι η διαφορά μεταξύ και ?
- βασίζεται σε ετικέτες, ενώ βασίζεται σε ακέραιο αριθμό. Χρήση με ετικέτες σειρών/στηλών και iloc με δείκτες σειρών/στηλών.
- Πώς μπορώ να επιλέξω συγκεκριμένες στήλες κατά το φιλτράρισμα σειρών;
- Μπορείς να χρησιμοποιήσεις . Για παράδειγμα, .
- Πώς μπορώ να χειριστώ τις τιμές που λείπουν κατά την επιλογή σειρών;
- Χρησιμοποιήστε το λειτουργία για την αφαίρεση σειρών με τιμές που λείπουν ή για να τα αντικαταστήσετε με μια καθορισμένη τιμή.
- Μπορώ να χρησιμοποιήσω τυπικές εκφράσεις για να φιλτράρω σειρές;
- Ναι το λειτουργία με το Η παράμετρος σάς επιτρέπει να φιλτράρετε σειρές με βάση μοτίβα regex. Για παράδειγμα, .
- Πώς φιλτράρω τις σειρές με βάση το ευρετήριο;
- Μπορείς να χρησιμοποιήσεις με το όνομα ευρετηρίου. Για παράδειγμα, .
- Τι γίνεται αν τα ονόματα των στηλών μου περιέχουν κενά ή ειδικούς χαρακτήρες;
- Χρησιμοποιήστε το συνάρτηση που μπορεί να χειριστεί τέτοια ονόματα στηλών με backticks. Για παράδειγμα, .
Τελικές σκέψεις σχετικά με τις τεχνικές επιλογής γραμμής DataFrame
Η επιλογή γραμμών από ένα DataFrame με βάση τις τιμές στηλών στα Panda είναι μια κρίσιμη δεξιότητα για τον χειρισμό δεδομένων. Οι διάφορες μέθοδοι που συζητήθηκαν, συμπεριλαμβανομένης της δυαδικής ευρετηρίασης, , , και ευρετηρίαση βάσει ετικετών και ακέραιων θέσεων με και iloc, παρέχουν ισχυρά εργαλεία για αποτελεσματικό φιλτράρισμα δεδομένων. Η κυριαρχία αυτών των τεχνικών επιτρέπει καλύτερη ανάλυση δεδομένων και καθαρότερο, πιο διατηρήσιμο κώδικα.