Η συνάρτηση Python pandas DataFrame.isin() έχει σχεδιαστεί για να ελέγχει γρήγορα και αποτελεσματικά αν ορισμένες τιμές υπάρχουν σε ένα DataFrame. Αυτή η συνάρτηση είναι ιδιαίτερα χρήσιμη για τον έλεγχο πολλαπλών τιμών ταυτόχρονα.

Ποια είναι η σύνταξη για το pandas isin();

Το Pandas isin() δέχεται έναν παράμετρο και έχει την εξής μορφή:

DataFrame.isin(values)
python

Η παράμετρος values μπορεί να είναι μια λίστα Python, ένα λεξικό Python ή ένα άλλο DataFrame. Περιέχει τις τιμές που θέλετε να αναζητήσετε στο DataFrame.

Tip

Εάν εργάζεστε με σειρές 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
Go to Main Menu