Πόσο η καινοτομία στην τεχνολογία ενδυναμώνει τον τομέα ανάπτυξης εφαρμογών; 1

Πώς να κάνετε ερώτηση στο πλαίσιο δεδομένων σας Pandas

Κόμβος πηγής: 1017694

Πώς να κάνετε ερώτηση στο πλαίσιο δεδομένων σας Pandas

Η προοπτική ενός Επιστήμονα Δεδομένων για τις συναρτήσεις Python που μοιάζουν με SQL.


By Μάθιου Πρέσμυλα, Ανώτερος Επιστήμονας Δεδομένων στο Favor Delivery



Φωτογραφία Μπρους Χονγκ on Unsplash [1].

Πίνακας περιεχομένων

 
 

  1. Εισαγωγή
  2. Πολλαπλές προϋποθέσεις
  3. Συγχώνευση σε πολλαπλές, συγκεκριμένες στήλες
  4. Χαρακτηριστικά
  5. αναφορές

Εισαγωγή

 
 
Είτε μεταβαίνετε από μηχανικός δεδομένων/αναλυτής δεδομένων είτε θέλετε να γίνετε πιο αποτελεσματικός επιστήμονας δεδομένων, η υποβολή ερωτημάτων στο πλαίσιο δεδομένων σας μπορεί να αποδειχθεί πολύ χρήσιμη μέθοδος για την επιστροφή συγκεκριμένων σειρών που θέλετε. Είναι σημαντικό να σημειωθεί ότι υπάρχει μια συγκεκριμένη συνάρτηση ερωτήματος για πάντα, με την κατάλληλη ονομασία, query. Ωστόσο, θα συζητήσω αντ 'αυτού τους άλλους τρόπους με τους οποίους μπορείτε να μιμηθείτε τα ερωτήματα, το φιλτράρισμα και τη συγχώνευση των δεδομένων σας. Θα παρουσιάσουμε κοινά σενάρια ή ερωτήσεις που θα κάνατε στα δεδομένα σας και αντί για SQL, θα το κάνουμε με την Python. Στις παρακάτω παραγράφους, θα περιγράψω μερικούς απλούς τρόπους αναζήτησης σειρών για το πλαίσιο δεδομένων panda σας με τη γλώσσα προγραμματισμού Python.

Πολλαπλές προϋποθέσεις

 
 



Δειγμα δεδομένων. Στιγμιότυπο οθόνης από τον συγγραφέα [2].

 

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

Το παράδειγμα πολλαπλών συνθηκών θα απαντήσει ουσιαστικά σε μια συγκεκριμένη ερώτηση, όπως όταν χρησιμοποιείτε SQL. Το ερώτημα είναι ποιο ποσοστό των δεδομένων μας είναι αρσενικό φύλο OR ένα άτομο που γεννήθηκε μεταξύ 2010 και 2021.

Εδώ είναι ο κώδικας που θα λύσει αυτήν την ερώτηση (υπάρχουν μερικοί τρόποι για να απαντήσετε σε αυτήν την ερώτηση, αλλά εδώ είναι ο συγκεκριμένος τρόπος να το κάνω):

print(“Percent of data who are Males OR were born between 2010 and 2021:”, 100*round(df[(df[‘Gender’] == ‘M’) | (df[‘Birthdate’] >= ‘2010–01–01’) & (df[‘Birthdate’] <= ‘2021–01–01’)][‘Gender’].count()/df.shape [0],4), “%”)

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



Κωδικός συνθηκών. Στιγμιότυπο οθόνης από τον συγγραφέα [3].

 

Ακολουθεί η σειρά των εντολών που εκτελέσαμε:

  • Επιστρέψτε σειρές με Αρσενικό Gender
  • Συμπεριλάβετε το OR λειτουργία |
  • Επιστρέψτε τις σειρές του Birthdate > 2010 και 2021
  • Συνδυάστε όλα αυτά και, στη συνέχεια, διαιρέστε με το συνολικό αριθμό σειρών

Όπως μπορείτε να δείτε, αυτός ο κώδικας είναι παρόμοιος με κάτι που θα βλέπατε στην SQL. Προσωπικά πιστεύω ότι είναι πιο εύκολο στα πάντα γιατί μπορεί να είναι λιγότερος κώδικας, ενώ μπορεί επίσης να δει οπτικά όλο τον κώδικα σε ένα εύκολο σημείο, χωρίς να χρειάζεται να κάνετε κύλιση πάνω-κάτω (αλλά αυτή η μορφή είναι απλώς η προτίμησή μου).

Συγχώνευση σε πολλαπλές, συγκεκριμένες στήλες

 
 



Αποτέλεσμα συγχωνευμένου πλαισίου δεδομένων. Στιγμιότυπο οθόνης από τον συγγραφέα [4].

 

Πιθανότατα έχουμε δει πώς να συγχωνεύουμε πλαίσια δεδομένων σε άλλα σεμινάρια, γι' αυτό ήθελα να προσθέσω μια μοναδική προσέγγιση που δεν έχω δει πραγματικά εκεί έξω, η οποία είναι η συγχώνευση σε πολλαπλές, συγκεκριμένες στήλες. Σε αυτό το σενάριο, θέλουμε να ενώσουμε δύο πλαίσια δεδομένων όπου δύο πεδία μοιράζονται μεταξύ τους. Θα μπορούσατε να πείτε ότι εάν υπάρχουν ακόμη περισσότερες στήλες, αυτή η μέθοδος θα μπορούσε να είναι ακόμη πιο χρήσιμη.

Έχουμε το πρώτο μας πλαίσιο δεδομένων, το οποίο είναι df, μετά συγχωνεύουμε τις στήλες μας σε ένα δεύτερο πλαίσιο δεδομένων, το df2. Εδώ είναι αυτός ο κώδικας για να επιτύχουμε το αναμενόμενο αποτέλεσμα:

merged_df = df.merge(df2, how=’inner’, left_on=cols, right_on=cols )

Για να οπτικοποιήσω καλύτερα αυτή τη συγχώνευση και τον κώδικα, παρουσίασα το στιγμιότυπο οθόνης παρακάτω. Βλέπετε πώς φαίνεται το δεύτερο πλαίσιο δεδομένων παρακάτω, με το First και  Last ονόματα, όπως ακριβώς βρίσκονται στο πρώτο πλαίσιο δεδομένων, αλλά με μια νέα στήλη, Numeric. Στη συνέχεια, έχουμε συγκεκριμένες στήλες στις οποίες θέλαμε να συγχωνευτούμε, ενώ επιστρέφουμε στήλες GenderBirthdate, Και το νέο Numeric στήλη επίσης. Οι στήλες είναι μια λίστα στηλών, η οποία ονομάζεται cols.



Συγχώνευση πλαισίου δεδομένων. Στιγμιότυπο οθόνης από τον συγγραφέα [5].

 

Όπως μπορείτε να δείτε, αυτός ο τρόπος συγχώνευσης πλαισίων δεδομένων είναι ένας απλός τρόπος για να επιτύχετε τα ίδια αποτελέσματα που θα λαμβάνατε από ένα ερώτημα SQL.

Χαρακτηριστικά

 
 
Σε αυτό το σεμινάριο, είδαμε δύο κοινές ερωτήσεις ή ερωτήματα που θα εκτελούσατε σε SQL, αλλά αντίθετα, θα τα εκτελούσατε με πλαίσια δεδομένων pandas στην Python.

Συνοψίζοντας, εδώ είναι τα δύο σενάρια με τα οποία δουλέψαμε:

  1. Επιστροφή του ποσοστού των σειρών από το συνολικό σύνολο δεδομένων από πολλές συνθήκες
  2. Συγχώνευση πολλαπλών, συγκεκριμένων στηλών για την επιστροφή ενός τελικού πλαισίου δεδομένων με μια νέα στήλη

Ελπίζω να βρήκατε το άρθρο μου ενδιαφέρον και χρήσιμο. Μη διστάσετε να σχολιάσετε παρακάτω εάν συμφωνείτε ή διαφωνείτε με αυτές τις μεθόδους. Γιατί ή γιατί όχι? Αυτά σίγουρα μπορούν να διευκρινιστούν ακόμη περισσότερο, αλλά ελπίζω ότι μπόρεσα να ρίξω λίγο φως σε μερικούς από τους τρόπους με τους οποίους μπορείτε να χρησιμοποιήσετε τα panda και την Python αντί για SQL. Ευχαριστούμε που το διαβάσατε!

Μη διστάσετε να ελέγξετε το προφίλ μου, Matt Przybyla, και άλλα άρθρα, καθώς και επικοινωνήστε μαζί μου στο LinkedIn.

Δεν είμαι συνδεδεμένος με αυτές τις εταιρείες.

 
αναφορές

[1] Φωτογραφία από Μπρους Χονγκ on Unsplash(2018)

[2] M. Przybyla, δείγμα οθόνης δεδομένων, (2021)

[3] M. Przybyla, στιγμιότυπο οθόνης κωδικού συνθηκών, (2021)

[4] M. Przybyla, στιγμιότυπο αποτελέσματος συγχωνευμένου πλαισίου δεδομένων, (2021)

[5] M. Przybyla, στιγμιότυπο οθόνης συγχώνευσης καρέ δεδομένων, (2021)

 
Bio: Μάθιου Πρέσμυλα είναι Senior Data Scientist στο Favor Delivery και ανεξάρτητος τεχνικός συγγραφέας, ειδικά στην επιστήμη δεδομένων.

Πρωτότυπο. Αναδημοσιεύτηκε με άδεια.

Συγγενεύων:

Πηγή: https://www.kdnuggets.com/2021/08/query-pandas-dataframe.html

Σφραγίδα ώρας:

Περισσότερα από KDnuggets