Kuidas otsida andmeid DataFrames'is, kasutades pandas isin()
Python pandas funktsioon DataFrame.isin() on loodud selleks, et kiiresti ja tõhusalt kontrollida, kas teatud väärtused eksisteerivad DataFrame’is. See funktsioon on eriti kasulik mitme väärtuse korraga kontrollimiseks.
Mis on pandas isin() süntaks?
Pandas isin() võtab ühe parameetri ja näeb välja järgmine:
DataFrame.isin(values)pythonvalues parameeter võib olla Python-nimekiri, Python-sõnastik või mõni muu DataFrame. See sisaldab väärtusi, mida soovite DataFrame’is otsida.
Kui töötate DataFrames’i asemel pandas Series’iga, võite kasutada samaväärset funktsiooni Series.isin().
Kuidas kasutada isin() koos andmeraamidega pandas
Võite kasutada isin() erinevatel eesmärkidel. Lisaks väärtuste kontrollimisele saab seda kasutada ka DataFrame’ide filtreerimiseks.
Veeru väärtuste kontrollimine
Esmalt vaatame DataFrame’i, mis sisaldab teavet erinevate inimeste ja nende elukoha kohta.
import pandas as pd
# Creating a DataFrame
data = {
'Name': ['Amir', 'Bella', 'Charlize', 'David'],
'City': ['Nottingham', 'London', 'Cardiff', 'Hull']
}
df = pd.DataFrame(data)
print(df)pythonAndmestruktuur näeb välja järgmine:
Name City
0 Amir Nottingham
1 Bella London
2 Charlize Cardiff
3 David HullNüüd tahame kasutada pandas isin(), et kontrollida, kas veerus „City” olevad linnad esinevad meie loodud eraldi linnade nimekirjas. Kui oleme loonud nimekirja viitelinnadega, käivitame funktsiooni veerus „City” andmestruktuuris:
# 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)pythonTulemuseks on rida booli väärtusi, mis näitavad, kas iga linn veerus „Linn” on esindatud cities_to_check_against nimekirjas:
0 False
1 False
2 True
3 True
Name: City, dtype: boolAndmestiku filtreerimine isin() abil
Võite kasutada ka pandas isin(), et filtreerida DataFrame’i, jättes alles ainult need read, kus on linnad, mis esinevad cities_to_check_against nimekirjas.
# Filtering a DataFrame using isin()
filtered_df = df[df['City'].isin(cities_to_check_against)]
print(filtered_df)pythonTulemuseks on DataFrame, mis sisaldab ainult neid ridu, kus on linnad, mis on ka cities_to_check_against nimekirjas:
Name City
2 Charlize Cardiff
3 David HullMitme veeru kontrollimine andmestikus
Keerulisemate filtreerimisoperatsioonide jaoks võite kasutada ka pandas isin() koos sõnastikega. Järgmises näites näete, kuidas sõnastikku kasutada, et kontrollida samaaegselt mitut DataFrame’i veergu. Esmalt lisame algsele DataFrame’ile veeru ja seejärel kasutame 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)pythonSellisel juhul tagastab isin() kutsumine DataFrame’i boolesete väärtustega, mis näitavad, kas tingimused on igas veerus täidetud:
Name City Age
0 False False False
1 False False True
2 False True False
3 False True True