Ως αναλυτής δεδομένων, θα αντιμετωπίσετε συχνά την ανάγκη να συνδυάσετε πολλαπλά σύνολα δεδομένων. Θα χρειαστεί να το κάνετε αυτό για να ολοκληρώσετε την ανάλυσή σας και να καταλήξετε σε ένα συμπέρασμα για την επιχείρησή σας/τα ενδιαφερόμενα μέρη.
Είναι συχνά δύσκολο να αναπαραστήσετε δεδομένα όταν είναι αποθηκευμένα σε διαφορετικούς πίνακες. Σε τέτοιες περιπτώσεις, οι συμμετοχές αποδεικνύουν την αξία τους, ανεξάρτητα από τη γλώσσα προγραμματισμού στην οποία εργάζεστε.
Οι συνδέσεις Python είναι σαν τις συνδέσεις SQL: συνδυάζουν σύνολα δεδομένων ταιριάζοντας τις σειρές τους σε ένα κοινό ευρετήριο.
Δημιουργήστε δύο πλαίσια δεδομένων για αναφορά
Για να ακολουθήσετε τα παραδείγματα σε αυτόν τον οδηγό, μπορείτε να δημιουργήσετε δύο δείγματα DataFrames. Χρησιμοποιήστε τον παρακάτω κώδικα για να δημιουργήσετε το πρώτο DataFrame, το οποίο περιέχει αναγνωριστικό, όνομα και επώνυμο.
εισαγωγή τα πάντα όπως και πδ
α = πδ. Πλαίσιο δεδομένων({"ταυτότητα": ["001", "002", "003", "004", "005"],
"Fname": ["Ρον ", "Γιάννης", "Ελένη", "Κλωστική μηχανή", "ο Κένι"],
"Lname": ["Κιθ", "Harley", "Σιδηρουργός", "Kerr-Hislop", "Κουρέας"]})
Τυπώνω(ένα)
Για το πρώτο βήμα, εισαγάγετε το τα πάντα βιβλιοθήκη. Στη συνέχεια, μπορείτε να χρησιμοποιήσετε μια μεταβλητή, ένα, για να αποθηκεύσετε το αποτέλεσμα από τον κατασκευαστή DataFrame. Δώστε στον κατασκευαστή ένα λεξικό που περιέχει τις απαιτούμενες τιμές σας.
Τέλος, εμφανίστε τα περιεχόμενα της τιμής DataFrame με τη λειτουργία εκτύπωσης, για να ελέγξετε ότι όλα φαίνονται όπως θα περιμένατε.
Ομοίως, μπορείτε να δημιουργήσετε ένα άλλο DataFrame, σι, το οποίο περιέχει ταυτότητα και αξίες μισθού.
b = pd. Πλαίσιο δεδομένων({"ταυτότητα": ["001", "002", "003", "004", "005"],
"Μισθός": [100000, 700000, 80000, 904750, 604772]})
Τυπώνω(σι)
Μπορείτε να ελέγξετε την έξοδο σε μια κονσόλα ή ένα IDE. Θα πρέπει να επιβεβαιώνει τα περιεχόμενα των DataFrames σας:
Πώς διαφέρουν οι συνδέσεις από τη συνάρτηση συγχώνευσης στην Python;
Η βιβλιοθήκη pandas είναι μια από τις κύριες βιβλιοθήκες που μπορείτε να χρησιμοποιήσετε για να χειριστείτε τα DataFrames. Δεδομένου ότι τα DataFrames περιέχουν πολλαπλά σύνολα δεδομένων, διάφορες συναρτήσεις είναι διαθέσιμες στην Python για τη σύνδεσή τους.
Η Python προσφέρει τις λειτουργίες ένωσης και συγχώνευσης, μεταξύ πολλών άλλων, τις οποίες μπορείτε να χρησιμοποιήσετε για να συνδυάσετε DataFrames. Υπάρχει μια έντονη διαφορά μεταξύ αυτών των δύο λειτουργιών, την οποία πρέπει να έχετε κατά νου πριν χρησιμοποιήσετε οποιαδήποτε.
Η συνάρτηση join ενώνει δύο DataFrame με βάση τις τιμές ευρετηρίου τους. ο Η συνάρτηση συγχώνευσης συνδυάζει DataFrames με βάση τις τιμές του ευρετηρίου και τις στήλες.
Τι πρέπει να γνωρίζετε για τις συνδέσεις στην Python;
Πριν συζητήσετε τους τύπους των διαθέσιμων ενώσεων, εδώ είναι μερικά σημαντικά πράγματα που πρέπει να σημειώσετε:
- Οι συνδέσεις SQL είναι μια από τις πιο βασικές λειτουργίες και είναι αρκετά παρόμοια με τις συνδέσεις της Python.
- Για να εγγραφείτε στο DataFrames, μπορείτε να χρησιμοποιήσετε το τα πάντα. DataFrame.join() μέθοδος.
- Η προεπιλεγμένη σύνδεση εκτελεί μια αριστερή ένωση, ενώ η συνάρτηση συγχώνευσης εκτελεί μια εσωτερική ένωση.
Η προεπιλεγμένη σύνταξη για μια ένωση Python είναι η εξής:
DataFrame.join (άλλο, on=None, how='αριστερά/δεξιά/εσωτερικά/εξωτερικά', lsuffix='', rsuffix='',
ταξινόμηση=Ψευδής)
Επικαλέστε τη μέθοδο σύνδεσης στο πρώτο DataFrame και περάστε το δεύτερο DataFrame ως πρώτη παράμετρό του, άλλα. Τα υπόλοιπα επιχειρήματα είναι:
- επί, το οποίο ονομάζει ένα ευρετήριο στο οποίο θα συμμετάσχετε, εάν υπάρχουν περισσότερα από ένα.
- πως, το οποίο καθορίζει τον τύπο σύνδεσης, συμπεριλαμβανομένων του εσωτερικού, του εξωτερικού, του αριστερού και του δεξιού.
- l επίθημα, που ορίζει την αριστερή συμβολοσειρά του επιθήματος του ονόματος της στήλης σας.
- rs επίθημα, το οποίο ορίζει τη δεξιά συμβολοσειρά επιθήματος του ονόματος της στήλης σας.
- είδος, που είναι ένα boolean που υποδεικνύει εάν θα ταξινομηθεί το DataFrame που προκύπτει.
Μάθετε να χρησιμοποιείτε τους διάφορους τύπους συνδέσεων στην Python
Η Python έχει μερικές επιλογές σύνδεσης, τις οποίες μπορείτε να ασκήσετε, ανάλογα με την ανάγκη της ώρας. Εδώ είναι οι τύποι ένωσης:
1. Αριστερά Συμμετοχή
Η αριστερή ένωση διατηρεί ανέπαφες τις τιμές του πρώτου DataFrame, ενώ εισάγει τις τιμές που ταιριάζουν από το δεύτερο. Για παράδειγμα, εάν θέλετε να εισάγετε τις τιμές που ταιριάζουν από σι, μπορείτε να το ορίσετε ως εξής:
c = a.join (b, how="αριστερά", επίθημα = "_αριστερά", επίθημα = "_σωστά", ταξινόμηση = Σωστό)
Τυπώνω(ντο)
Όταν εκτελείται το ερώτημα, η έξοδος περιέχει τις ακόλουθες αναφορές στηλών:
- ID_αριστερά
- Fname
- Lname
- ID_right
- Μισθός
Αυτή η ένωση τραβάει τις τρεις πρώτες στήλες από το πρώτο DataFrame και τις δύο τελευταίες στήλες από το δεύτερο DataFrame. Έχει χρησιμοποιήσει το l επίθημα και rs επίθημα τιμές για να μετονομάσετε τις στήλες ID και από τα δύο σύνολα δεδομένων, διασφαλίζοντας ότι τα ονόματα πεδίων που προκύπτουν είναι μοναδικά.
Η έξοδος είναι η εξής:
2. Δεξιά Συμμετοχή
Η δεξιά ένωση διατηρεί ανέπαφες τις τιμές του δεύτερου DataFrame, ενώ εισάγει τις τιμές που ταιριάζουν από τον πρώτο πίνακα. Για παράδειγμα, εάν θέλετε να εισάγετε τις τιμές που ταιριάζουν από ένα, μπορείτε να το ορίσετε ως εξής:
c = b.join (a, how="σωστά", επίθημα = "_σωστά", επίθημα = "_αριστερά", ταξινόμηση = Σωστό)
Τυπώνω(ντο)
Η έξοδος είναι η εξής:
Εάν ελέγξετε τον κώδικα, υπάρχουν μερικές εμφανείς αλλαγές. Για παράδειγμα, το αποτέλεσμα περιλαμβάνει τις στήλες του δεύτερου DataFrame πριν από αυτές του πρώτου DataFrame.
Θα πρέπει να χρησιμοποιήσετε μια τιμή του σωστά για το πως όρισμα για τον καθορισμό μιας δεξιάς ένωσης. Επίσης, σημειώστε πώς μπορείτε να αλλάξετε το l επίθημα και rs επίθημα τιμές που αντικατοπτρίζουν τη φύση της σωστής ένωσης.
Στις κανονικές συνδέσεις σας, μπορεί να βρείτε τον εαυτό σας να χρησιμοποιεί αριστερές, εσωτερικές και εξωτερικές συνδέσεις πιο συχνά, σε σύγκριση με τη δεξιά ένωση. Ωστόσο, η χρήση εξαρτάται αποκλειστικά από τις απαιτήσεις δεδομένων σας.
3. Εσωτερική σύνδεση
Ένας εσωτερικός σύνδεσμος παραδίδει τις αντίστοιχες εγγραφές και από τα δύο DataFrames. Εφόσον οι ενώσεις χρησιμοποιούν τους αριθμούς ευρετηρίου για να ταιριάζουν σειρές, μια εσωτερική ένωση επιστρέφει μόνο τις σειρές που ταιριάζουν. Για αυτήν την απεικόνιση, ας χρησιμοποιήσουμε τα ακόλουθα δύο DataFrames:
α = πδ. Πλαίσιο δεδομένων({"ταυτότητα": ["001", "002", "003", "004", "005", "006", "007"],
"Fname": ["Ρον", "Γιάννης", "Ελένη", "Κλωστική μηχανή", "ο Κένι", "Ντάριλ", "Κάθι"],
"Lname": ["Κιθ", "Harley", "Σιδηρουργός", "Kerr-Hislop", "Κουρέας", "Χούπερ", "Ελπίζω"]})
b = pd. Πλαίσιο δεδομένων({"ταυτότητα": ["001", "002", "003", "004", "005"],
"Μισθός": [100000, 700000, 80000, 904750, 604772]})
Τυπώνω(ένα)
Τυπώνω(σι)
Η έξοδος είναι η εξής:
Μπορείτε να χρησιμοποιήσετε έναν εσωτερικό σύνδεσμο, ως εξής:
c = a.join (b, lsuffix="_αριστερά", rsuffix="_σωστά", πώς='εσωτερικός')
Τυπώνω(ντο)
Η έξοδος που προκύπτει περιέχει μόνο σειρές που υπάρχουν και στα δύο DataFrames εισόδου:
4. Εξωτερική σύνδεση
Μια εξωτερική ένωση επιστρέφει όλες τις τιμές και από τα δύο DataFrames. Για σειρές χωρίς αντίστοιχες τιμές, παράγει μια μηδενική τιμή στα μεμονωμένα κελιά.
Χρησιμοποιώντας το ίδιο DataFrame όπως παραπάνω, ακολουθεί ο κώδικας για την εξωτερική σύνδεση:
c = a.join (b, lsuffix="_αριστερά", rsuffix="_σωστά", πώς='εξωτερικός')
Τυπώνω(ντο)
Χρήση Joins στην Python
Οι συνδέσεις, όπως και οι αντίστοιχες λειτουργίες τους, η συγχώνευση και η συνένωση, προσφέρουν πολύ περισσότερα από μια απλή λειτουργικότητα σύνδεσης. Δεδομένης της σειράς επιλογών και λειτουργιών του, μπορείτε να επιλέξετε τις επιλογές που ανταποκρίνονται στις απαιτήσεις σας.
Μπορείτε να ταξινομήσετε τα σύνολα δεδομένων που προκύπτουν σχετικά εύκολα, με ή χωρίς τη συνάρτηση σύνδεσης, με τις ευέλικτες επιλογές που προσφέρει η Python.