Πώς να αναζητήσετε DataFrames χρησιμοποιώντας pandas isin()
Η συνάρτηση Python pandas DataFrame.isin() έχει σχεδιαστεί για να ελέγχει γρήγορα και αποτελεσματικά αν ορισμένες τιμές υπάρχουν σε ένα DataFrame. Αυτή η συνάρτηση είναι ιδιαίτερα χρήσιμη για τον έλεγχο πολλαπλών τιμών ταυτόχρονα.
Ποια είναι η σύνταξη για το pandas isin();
Το Pandas isin() δέχεται έναν παράμετρο και έχει την εξής μορφή:
DataFrame.isin(values)pythonΗ παράμετρος values μπορεί να είναι μια λίστα Python, ένα λεξικό Python ή ένα άλλο DataFrame. Περιέχει τις τιμές που θέλετε να αναζητήσετε στο DataFrame.
Εάν εργάζεστε με σειρές pandas αντί για DataFrames, μπορείτε να χρησιμοποιήσετε την αντίστοιχη συνάρτηση Series.isin().
Πώς να χρησιμοποιήσετε isin() με DataFrames στο pandas
Μπορείτε να χρησιμοποιήσετε isin() για διάφορους σκοπούς. Εκτός από τον έλεγχο τιμών, μπορεί επίσης να χρησιμοποιηθεί για το φιλτράρισμα DataFrames.
Έλεγχος τιμών σε μια στήλη
Αρχικά, ας ρίξουμε μια ματιά σε ένα DataFrame που περιέχει πληροφορίες για διαφορετικά άτομα και τον τόπο διαμονής τους.
import pandas as pd
# Creating a DataFrame
data = {
'Name': ['Amir', 'Bella', 'Charlize', 'David'],
'City': ['Nottingham', 'London', 'Cardiff', 'Hull']
}
df = pd.DataFrame(data)
print(df)pythonΤο DataFrame έχει την εξής μορφή:
Name City
0 Amir Nottingham
1 Bella London
2 Charlize Cardiff
3 David HullΤώρα, θέλουμε να χρησιμοποιήσουμε το pandas isin() για να ελέγξουμε αν οι πόλεις στη στήλη City εμφανίζονται σε μια ξεχωριστή λίστα πόλεων που έχουμε δημιουργήσει. Μόλις δημιουργήσουμε τη λίστα με τις πόλεις αναφοράς, θα εκτελέσουμε τη συνάρτηση στη στήλη DataFrame «City»:
# Cities for the list to be compared to
cities_to_check_against = ['Cardiff', 'Hull', 'Middlesbrough']
# Using the isin() method
result = df['City'].isin(cities_to_check_against)
print(result)pythonΤο αποτέλεσμα είναι μια σειρά από τιμές Boolean που υποδεικνύουν αν κάθε πόλη στη στήλη City υπάρχει στη λίστα cities_to_check_against:
0 False
1 False
2 True
3 True
Name: City, dtype: boolΦιλτράρισμα ενός DataFrame χρησιμοποιώντας isin()
Μπορείτε επίσης να χρησιμοποιήσετε pandas isin() για να φιλτράρετε ένα DataFrame, διατηρώντας μόνο τις σειρές με πόλεις που εμφανίζονται στη λίστα cities_to_check_against.
# Filtering a DataFrame using isin()
filtered_df = df[df['City'].isin(cities_to_check_against)]
print(filtered_df)pythonΤο αποτέλεσμα είναι ένα DataFrame που περιέχει μόνο τις σειρές με πόλεις που περιλαμβάνονται επίσης στη λίστα cities_to_check_against:
Name City
2 Charlize Cardiff
3 David HullΈλεγχος πολλαπλών στηλών σε ένα DataFrame
Για πιο σύνθετες λειτουργίες φιλτραρίσματος, μπορείτε επίσης να χρησιμοποιήσετε pandas isin() με λεξικά. Στο παρακάτω παράδειγμα, θα δείτε πώς μπορείτε να χρησιμοποιήσετε ένα λεξικό για να ελέγξετε ταυτόχρονα πολλές στήλες ενός DataFrame. Πρώτα, θα προσθέσουμε μια στήλη στο αρχικό DataFrame και στη συνέχεια θα χρησιμοποιήσουμε isin():
# Creating a DataFrame
data = {
'Name': ['Amir', 'Bella', 'Charlize', 'David'],
'City': ['Nottingham', 'London', 'Cardiff', 'Hull'],
'Age': [25, 30, 35, 40]
}
df = pd.DataFrame(data)
# Dictionary with values that the DataFrame should be checked against
values_to_check_against = {
'City': ['Cardiff', 'Hull'],
'Age': [30, 40]
}
# Using isin() with a dictionary
result = df.isin(values_to_check_against)
print(result)pythonΣε αυτήν την περίπτωση, η κλήση isin() επιστρέφει ένα DataFrame με τιμές Boolean, οι οποίες υποδεικνύουν εάν οι συνθήκες έχουν ικανοποιηθεί σε κάθε στήλη:
Name City Age
0 False False False
1 False False True
2 False True False
3 False True True