Οι 4 τύποι συνδέσεων DataFrame που προσφέρονται από τη βιβλιοθήκη pandas της Python

Οι 4 τύποι συνδέσεων DataFrame που προσφέρονται από τη βιβλιοθήκη pandas της Python

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





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





ΚΑΤΑΣΚΕΥΗ ΒΙΝΤΕΟ ΤΗΣ ΗΜΕΡΑΣ

Οι συνδέσεις Python είναι σαν τις συνδέσεις SQL: συνδυάζουν σύνολα δεδομένων ταιριάζοντας τις σειρές τους σε ένα κοινό ευρετήριο.





Δημιουργήστε δύο πλαίσια δεδομένων για αναφορά

Για να ακολουθήσετε τα παραδείγματα σε αυτόν τον οδηγό, μπορείτε να δημιουργήσετε δύο δείγματα DataFrames. Χρησιμοποιήστε τον παρακάτω κώδικα για να δημιουργήσετε το πρώτο DataFrame, το οποίο περιέχει αναγνωριστικό, όνομα και επώνυμο.

import pandas as pd 

a = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny"],
"Lname": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber"]})
print(a)

Για το πρώτο βήμα, εισαγάγετε το τα πάντα βιβλιοθήκη. Στη συνέχεια, μπορείτε να χρησιμοποιήσετε μια μεταβλητή, ένα , για να αποθηκεύσετε το αποτέλεσμα από τον κατασκευαστή DataFrame. Δώστε στον κατασκευαστή ένα λεξικό που περιέχει τις απαιτούμενες τιμές σας.



Τέλος, εμφανίστε τα περιεχόμενα της τιμής DataFrame με τη λειτουργία εκτύπωσης, για να ελέγξετε ότι όλα φαίνονται όπως θα περιμένατε.

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





Αποτυχία περιγραφής συσκευής usb Windows 10
b = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"], 
"Salary": [100000, 700000, 80000, 904750, 604772]})

print(b)

Μπορείτε να ελέγξετε την έξοδο σε μια κονσόλα ή ένα IDE. Θα πρέπει να επιβεβαιώνει τα περιεχόμενα των DataFrames σας:

Πώς διαφέρουν οι συνδέσεις από τη συνάρτηση συγχώνευσης στην Python;

Η βιβλιοθήκη pandas είναι μια από τις κύριες βιβλιοθήκες που μπορείτε να χρησιμοποιήσετε για να χειριστείτε τα DataFrames. Δεδομένου ότι τα DataFrames περιέχουν πολλαπλά σύνολα δεδομένων, διάφορες συναρτήσεις είναι διαθέσιμες στην Python για τη σύνδεσή τους.





Η Python προσφέρει τις λειτουργίες ένωσης και συγχώνευσης, μεταξύ πολλών άλλων, τις οποίες μπορείτε να χρησιμοποιήσετε για να συνδυάσετε DataFrames. Υπάρχει μια έντονη διαφορά μεταξύ αυτών των δύο λειτουργιών, την οποία πρέπει να έχετε κατά νου πριν χρησιμοποιήσετε οποιαδήποτε.

Η συνάρτηση join ενώνει δύο DataFrame με βάση τις τιμές ευρετηρίου τους. ο Η συνάρτηση συγχώνευσης συνδυάζει DataFrames με βάση τις τιμές του ευρετηρίου και τις στήλες.

Τι πρέπει να γνωρίζετε για τις συνδέσεις στην Python;

Πριν συζητήσετε τους τύπους των διαθέσιμων ενώσεων, εδώ είναι μερικά σημαντικά πράγματα που πρέπει να σημειώσετε:

  • Οι συνδέσεις SQL είναι μια από τις πιο βασικές λειτουργίες και είναι αρκετά παρόμοια με τις συνδέσεις της Python.
  • Για να εγγραφείτε στο DataFrames, μπορείτε να χρησιμοποιήσετε το pandas.DataFrame.join() μέθοδος.
  • Η προεπιλεγμένη σύνδεση εκτελεί μια αριστερή ένωση, ενώ η συνάρτηση συγχώνευσης εκτελεί μια εσωτερική ένωση.

Η προεπιλεγμένη σύνταξη για μια ένωση Python είναι η εξής:

DataFrame.join(other, on=None, how='left/right/inner/outer', lsuffix='', rsuffix='', 
sort=False)

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

  • επί , το οποίο ονομάζει ένα ευρετήριο στο οποίο θα συμμετάσχετε, εάν υπάρχουν περισσότερα από ένα.
  • πως , οι οποίες καθορίζει τον τύπο σύνδεσης, συμπεριλαμβανομένων των εσωτερικών, εξωτερικών, αριστερών και δεξιών.
  • l επίθημα , οι οποίες ορίζει την αριστερή συμβολοσειρά κατάληξης του ονόματος της στήλης σας.
  • rs επίθημα , οι οποίες ορίζει τη δεξιά συμβολοσειρά κατάληξης του ονόματος της στήλης σας.
  • είδος , οι οποίες είναι ένα boolean που υποδεικνύει εάν θα ταξινομηθεί το DataFrame που προκύπτει.

Μάθετε να χρησιμοποιείτε τους διάφορους τύπους συνδέσεων στην Python

Η Python έχει μερικές επιλογές σύνδεσης, τις οποίες μπορείτε να ασκήσετε, ανάλογα με την ανάγκη της ώρας. Εδώ είναι οι τύποι ένωσης:

1. Αριστερά Συμμετοχή

Η αριστερή ένωση διατηρεί ανέπαφες τις τιμές του πρώτου DataFrame, ενώ εισάγει τις τιμές που ταιριάζουν από το δεύτερο. Για παράδειγμα, εάν θέλετε να εισάγετε τις τιμές που ταιριάζουν από σι , μπορείτε να το ορίσετε ως εξής:

c = a.join(b, how="left", lsuffix = "_left", rsuffix = "_right", sort = True) 
print(c)

Όταν εκτελείται το ερώτημα, η έξοδος περιέχει τις ακόλουθες αναφορές στηλών:

  • ID_αριστερά
  • Fname
  • Lname
  • ID_right
  • Μισθός

Αυτή η ένωση τραβάει τις τρεις πρώτες στήλες από το πρώτο DataFrame και τις δύο τελευταίες στήλες από το δεύτερο DataFrame. Έχει χρησιμοποιήσει το l επίθημα και rs επίθημα τιμές για να μετονομάσετε τις στήλες ID και από τα δύο σύνολα δεδομένων, διασφαλίζοντας ότι τα ονόματα πεδίων που προκύπτουν είναι μοναδικά.

Η έξοδος είναι η εξής:

  Κώδικας που δείχνει την αριστερή ένωση στην Python's dataframes

2. Δεξιά Σύνδεση

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

Το amd-v δεν είναι διαθέσιμο
c = b.join(a, how="right", lsuffix = "_right", rsuffix = "_left", sort = True) 
print(c)

Η έξοδος είναι η εξής:

  Κώδικας που δείχνει τη δεξιά ένωση στην Python's dataframes

Εάν ελέγξετε τον κώδικα, υπάρχουν μερικές εμφανείς αλλαγές. Για παράδειγμα, το αποτέλεσμα περιλαμβάνει τις στήλες του δεύτερου DataFrame πριν από αυτές του πρώτου DataFrame.

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

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

3. Εσωτερική ένωση

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

a = pd.DataFrame({"ID": ["001", "002", "003", "004", "005", "006", "007"], 
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny", "Daryl", "Cathy"],
"Lname": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber", "Hooper", "Hope"]})
b = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Salary": [100000, 700000, 80000, 904750, 604772]})

print(a)
print(b)

Η έξοδος είναι η εξής:

  Δημιουργήστε νέα πλαίσια δεδομένων στην Python

Μπορείτε να χρησιμοποιήσετε έναν εσωτερικό σύνδεσμο, ως εξής:

c = a.join(b, lsuffix="_left", rsuffix="_right", how='inner') 
print(c)

Η έξοδος που προκύπτει περιέχει μόνο σειρές που υπάρχουν και στα δύο DataFrames εισόδου:

  Κώδικας που δείχνει την εσωτερική ένωση στην Python's dataframes

4. Εξωτερική σύνδεση

Μια εξωτερική ένωση επιστρέφει όλες τις τιμές και από τα δύο DataFrames. Για σειρές χωρίς αντίστοιχες τιμές, παράγει μια μηδενική τιμή στα μεμονωμένα κελιά.

εξωτερικός σκληρός δίσκος που δεν εμφανίζεται στα παράθυρα 10

Χρησιμοποιώντας το ίδιο DataFrame όπως παραπάνω, ακολουθεί ο κώδικας για την εξωτερική σύνδεση:

c = a.join(b, lsuffix="_left", rsuffix="_right", how='outer') 
print(c)
  Κώδικας που δείχνει την εξωτερική σύνδεση στην Python's dataframes

Χρήση Joins στην Python

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

Μπορείτε να ταξινομήσετε τα σύνολα δεδομένων που προκύπτουν σχετικά εύκολα, με ή χωρίς τη συνάρτηση σύνδεσης, με τις ευέλικτες επιλογές που προσφέρει η Python.