Pandas Case When

Pandas Case When



Όταν μια συνθήκη ικανοποιείται ή πληρούται, μια δήλωση case στη γλώσσα panda παρέχει μια έξοδο ή επιστρέφει μια τιμή. Μια δήλωση περίπτωσης καθιστά δυνατή τη σύγκριση της τιμής μιας μεταβλητής με ένα εύρος πιθανών τιμών. Όταν το σύνολο τιμών αναφέρεται ή μεταβιβάζεται στη δήλωση case, κάθε τιμή μέσα στο σύνολο ελέγχεται από τις περιπτώσεις ή τις συνθήκες μέσα στη δήλωση. Μπορούμε επίσης να χρησιμοποιήσουμε την εντολή if-else για να κάνουμε την ίδια λειτουργία. Εάν μια συγκεκριμένη συνθήκη είναι αληθής, η πρόταση if-else προκαλεί την εκτέλεση ενός σεναρίου. Η πρόταση if-else λέει να το εκτελέσετε εάν η συνθήκη είναι αληθής και να το κάνετε εάν δεν είναι. Σε αυτό το σεμινάριο, θα εκτελέσουμε διαφορετικές λειτουργίες χρησιμοποιώντας δηλώσεις περίπτωσης και εντολές if-else.

Πώς να χρησιμοποιήσετε τη δήλωση υπόθεσης Pandas;

Οι δηλώσεις περίπτωσης μπορούν να δημιουργηθούν με διάφορους τρόπους. Η συνάρτηση NumPy where(), η οποία χρησιμοποιεί την ακόλουθη θεμελιώδη σύνταξη, είναι ο απλούστερος τρόπος για να δημιουργήσετε μια πρόταση case σε ένα Pandas DataFrame:

df [ «όνομα στήλης» ] = np.όπου ( κατάσταση 1 , 'τιμή1',
np.όπου ( κατάσταση δύο , «τιμή2»,
np.όπου ( κατάσταση 3 , 'value3', 'value4' ) ) )







Η παραπάνω δήλωση θα ελέγξει κάθε συνθήκη για την τιμή και, εάν η συνθήκη ικανοποιείται, θα δημιουργήσει την έξοδο ή θα επιστρέψει την τιμή έναντι της συνθήκης.



Παράδειγμα # 1: Δήλωση περίπτωσης Pandas με χρήση της συνάρτησης Where().

Ας δημιουργήσουμε πρώτα ένα πλαίσιο δεδομένων για να μπορούμε να χρησιμοποιήσουμε τη δήλωση περίπτωσής μας. Για να δημιουργήσουμε το πλαίσιο δεδομένων, θα εισαγάγουμε πρώτα τις μονάδες numpy και pandas, ώστε να μπορούμε να χρησιμοποιήσουμε τις λειτουργίες τους. Το pd.Dataframe() θα χρησιμοποιηθεί για τη δημιουργία του πλαισίου δεδομένων μας.







Δημιουργήσαμε το πλαίσιο δεδομένων «df». Ένα λεξικό Python περνά μέσα στο pd. Η DataFrame() λειτουργεί ως όρισμα με κλειδιά και τιμές. Θα χρησιμοποιήσουμε τη συνάρτηση print() για να δούμε το πλαίσιο δεδομένων μας.



Στο πλαίσιο δεδομένων 'df' έχουμε δύο στήλες 'όνομα' και 'σημάδια' με τιμές ['Ron', 'Tim', 'Anna', 'Jack', 'Rob', 'Lucy'] και [4, 6 , 8, 6, 9,10] αντίστοιχα. Ας υποθέσουμε ότι αυτό το όνομα είναι οι στήλες που αποθηκεύουν τα ονόματα των μαθητών και η στήλη «σημάδια» αποθηκεύει τη βαθμολογία κάποιου πρόσφατου τεστ. Τώρα, θα γράψουμε μια δήλωση περίπτωσης που προσθέτει μια νέα στήλη με το όνομα 'παρατηρήσεις', της οποίας οι τιμές βασίζονται στις τιμές που καθορίζονται από εμάς, για κάθε συνθήκη.

Η μέθοδος 'numpy.where()' παρέχει τους δείκτες στοιχείων από έναν πίνακα εισόδου, στήλη ή λίστα που ικανοποιούν την καθορισμένη συνθήκη. Στην παραπάνω περίπτωση διακόπτη, η συνάρτηση np.where() ελέγχει κάθε στοιχείο στις στήλες «σημαδιών». Εάν η τιμή είναι ίση ή μικρότερη από 5, θα επιστρέψει ως έξοδο το 'fail'. Εάν η τιμή είναι μικρότερη ή ίση με 7, θα επιστρέψει ικανοποιητική, και εάν η τιμή είναι μικρότερη ή ίση με 9, θα επιστρέψει 'υπέροχη'. Εάν δεν υπάρχει καμία, το αποτέλεσμα θα είναι εξαιρετικό.

Όπως μπορεί να παρατηρηθεί, η νέα στήλη «παρατηρήσεις» δημιουργείται στο πλαίσιο δεδομένων «df», αποθηκεύοντας τις τιμές που επιστρέφονται από την παραπάνω δήλωση case.

Παράδειγμα # 2:

Ας δοκιμάσουμε ξανά την παραπάνω δήλωση περίπτωσης με διαφορετικό πλαίσιο δεδομένων. Ας υποθέσουμε ότι πρέπει να βαθμολογήσουμε τους παίκτες με βάση τους συνολικούς στόχους τους στο προηγούμενο ποδοσφαιρικό τουρνουά. Ας φτιάξουμε λοιπόν ένα πλαίσιο δεδομένων για την αποθήκευση των αρχείων ποδοσφαιριστών.

Έχουμε περάσει ένα λεξικό με τα κλειδιά «όνομα» και «στόχοι» μέσα στη συνάρτηση pd.DataFrame() για να δημιουργήσουμε το πλαίσιο δεδομένων μας. Για να εκτυπώσουμε το πλαίσιο δεδομένων μας, θα χρησιμοποιήσουμε τη λειτουργία εκτύπωσης.

Όπως φαίνεται στο παραπάνω πλαίσιο δεδομένων, έχουμε δύο στήλες: «όνομα» και «στόχους». Στο όνομα της στήλης, έχουμε τα ονόματα των παικτών ['John', 'Marty', 'Clay', 'Nick', 'Mike', 'Alex', 'Tom', 'Rocky']. Στα γκολ της «στήλης», έχουμε τον συνολικό αριθμό των γκολ που σημείωσε κάθε παίκτης στο προηγούμενο τουρνουά. Τώρα θα χρησιμοποιήσουμε τη δήλωση περίπτωσής μας για να βαθμολογήσουμε αυτούς τους παίκτες με βάση τα γκολ που έχουν σημειώσει.

Η παραπάνω περίπτωση δημιουργείται χρησιμοποιώντας τη συνάρτηση where(). Μέσα στη θήκη, η συνάρτηση δήλωσης ελέγχει κάθε στοιχείο στις στήλες «σημαδιών» σε σχέση με τις συνθήκες. Εάν η τιμή στη στήλη «στόχοι» είναι ίση ή μικρότερη από 5, θα επιστρέψει «C». Εάν η τιμή στη στήλη «στόχοι» είναι ίση ή μικρότερη από 9, θα επιστρέψει «Β». Θα επιστρέψει ένα «A» εάν η τιμή στη στήλη «στόχοι» είναι ίση ή μεγαλύτερη από 10. Οι τιμές που επιστρέφονται από τη δήλωση θα αποθηκευτούν στη νέα στήλη «βαθμολόγηση». Ας εκτυπώσουμε το «df» για να δούμε τα αποτελέσματα.

Η νέα στήλη 'βαθμολόγηση' δημιουργήθηκε με επιτυχία χρησιμοποιώντας το παραπάνω σενάριο.

Παράδειγμα # 3: Δήλωση Pandas if-else Χρησιμοποιώντας τη συνάρτηση apply().

Ο άξονας γραμμής ή στήλης του πλαισίου δεδομένων χρησιμοποιείται από τη μέθοδο application() για την υλοποίηση μιας συνάρτησης. Μπορούμε να δημιουργήσουμε τη δική μας καθορισμένη συνάρτηση και να τη χρησιμοποιήσουμε στο πλαίσιο δεδομένων μας στα panda. Θα περιλαμβάνει εάν-αλλιώς προϋποθέσεις. Ας δημιουργήσουμε πρώτα το πλαίσιο δεδομένων μας και μετά θα δημιουργήσουμε μια συνάρτηση στην οποία θα χρησιμοποιήσουμε μια δήλωση if-else για να δημιουργήσουμε το αποτέλεσμα. Για να δημιουργήσουμε το πλαίσιο δεδομένων μας, θα εισαγάγουμε πρώτα τη μονάδα pandas και μετά θα περάσουμε ένα λεξικό μέσα στη μέθοδο pd.DataFrame().

Όπως φαίνεται, το πλαίσιο δεδομένων μας αποτελείται από δύο στήλες «Α» που αποθηκεύουν αριθμητικές τιμές [23, 35, 64, 74, 85] και «Β» με τιμές [45, 34, 61, 89, 27]. Τώρα θα δημιουργήσουμε μια συνάρτηση που θα καθορίσει ποια τιμή είναι μεγαλύτερη μεταξύ των δύο στηλών σε κάθε γραμμή του πλαισίου δεδομένων μας.

Μπορείτε να χρησιμοποιήσετε τη συνάρτηση λάμδα Python 'pandas. DataFrame.apply()” για να εκτελέσετε μια έκφραση. Στην Python, μια συνάρτηση λάμδα είναι μια συμπαγής ανώνυμη συνάρτηση που δέχεται οποιοδήποτε αριθμό ορισμάτων και εκτελεί μια έκφραση. Στο παραπάνω σενάριο, δημιουργήσαμε μια δήλωση συνθήκης που θα συγκρίνει την τιμή και των δύο στηλών και θα αποθηκεύει το αποτέλεσμα στη νέα στήλη «σύγκριση». Εάν η τιμή της στήλης «Α» είναι μικρότερη από την τιμή της στήλης «Β», θα επιστρέψει το «Β είναι μεγαλύτερο». Εάν η συνθήκη δεν ικανοποιηθεί, θα επιστρέψει 'Το Α είναι μεγαλύτερο'.

Παράδειγμα # 4:

Ας δοκιμάσουμε ένα άλλο παράδειγμα χρησιμοποιώντας τη δήλωση if-else μέσα στη συνάρτηση apply() με ένα άλλο πλαίσιο δεδομένων.

Ας υποθέσουμε ότι το πλαίσιο δεδομένων μας αποθηκεύει αρχεία εργαζομένων κάποιας εταιρείας. Η στήλη 'emp' αποθηκεύει τα ονόματα των εργαζομένων [«Franky», «Harry», «Luke», «Peter», «Andrew»], ενώ η στήλη «μισθός» αποθηκεύει τους μισθούς κάθε υπαλλήλου [1350, 1000, 900 , 1200, 980] στο πλαίσιο δεδομένων «df». Τώρα θα δημιουργήσουμε τη δήλωση if-else χρησιμοποιώντας τη μέθοδο apply().

Η παραπάνω συνθήκη θα ελέγξει για κάθε τιμή στη στήλη 'μισθός' και θα προσθέσει 200 ​​στους μισθούς των υπαλλήλων όπου η αξία μισθού είναι μικρότερη ή ίση με 1000. Έχουμε αποθηκεύσει τις τιμές που επιστράφηκαν από τη συνάρτηση application() στη νέα στήλη ' αύξηση'. Ας δούμε τα αποτελέσματα από το παραπάνω σενάριο.

Όπως μπορείτε να δείτε, η συνάρτηση πρόσθεσε με επιτυχία 200 στις τιμές που ήταν μικρότερες ή ίσες με 100. Οι τιμές που ήταν μεγαλύτερες από 1000 παρέμειναν αμετάβλητες.

Συμπέρασμα:

Σε αυτό το σεμινάριο, είδαμε ότι όταν ικανοποιείται η συνθήκη, μια δήλωση αυτού του τύπου, που ονομάζεται δήλωση περίπτωσης, επιστρέφει μια τιμή. Είδαμε πώς μπορείτε να δημιουργήσετε μια δήλωση υπόθεσης για να εκτελέσετε μια απαιτούμενη λειτουργία ή εργασία. Σε αυτό το σεμινάριο, χρησιμοποιήσαμε τη συνάρτηση np.where() και τη συνάρτηση application() για να δημιουργήσουμε δηλώσεις πεζών-κεφαλαίων. Υλοποιήσαμε μερικά παραδείγματα για να σας μάθουμε πώς να χρησιμοποιείτε εντολές πεζών-κεφαλαίων panda χρησιμοποιώντας τη συνάρτηση where() και πώς να χρησιμοποιείτε τη συνάρτηση application() για να δημιουργείτε δηλώσεις πεζών-κεφαλαίων.