# Kako iskati DataFrames z uporabo pandas isin()

Funkcija Python pandas `DataFrame.isin()` je zasnovana za hitro in učinkovito preverjanje, **ali določene vrednosti obstajajo v DataFrame**. Ta funkcija je še posebej uporabna za preverjanje več vrednosti hkrati.

## Kakšna je sintaksa za pandas `isin()`?

Pandas `isin()` sprejme en parameter in izgleda takole:

```python
DataFrame.isin(values)
```

Parameter `values` je lahko **seznam Python, slovar Python ali drug DataFrame**. Vsebuje vrednosti, ki jih želite iskati v DataFrame.

Tip Če delate s serijami pandas namesto z DataFrames, lahko uporabite enakovredno funkcijo `Series.isin()`.

## Kako uporabljati `isin()` z DataFrames v pandas

`isin()` lahko uporabite za različne namene. Poleg preverjanja vrednosti jo lahko uporabite tudi za filtriranje podatkovnih okvirov.

### Preverjanje vrednosti v stolpcu

Najprej si oglejmo DataFrame, ki vsebuje informacije o različnih ljudeh in kraju, kjer živijo.

```python
import pandas as pd
# Creating a DataFrame
data = {
    'Name': ['Amir', 'Bella', 'Charlize', 'David'],
    'City': ['Nottingham', 'London', 'Cardiff', 'Hull']
}
df = pd.DataFrame(data)
print(df)
```

DataFrame izgleda takole:

```none
Name      City
0    Amir    	Nottingham
1    Bella  	London
2    Charlize   Cardiff
3    David    Hull
```

Sedaj želimo uporabiti pandas `isin()`, da preverimo, ali se mesta v stolpcu City pojavljajo na ločenem seznamu mest, ki smo ga ustvarili. Ko bomo ustvarili seznam z referenčnimi mesti, bomo izvedli funkcijo na stolpcu DataFrame „City“:

```python
# 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)
```

Rezultat je niz booleovskih vrednosti, ki kažejo, ali je vsako mesto v stolpcu Mesto prisotno na seznamu `cities_to_check_against`:

```none
0    False
1    False
2     True
3     True
Name: City, dtype: bool
```

### Filtriranje podatkovnega okvira z uporabo `isin()`

Za filtriranje podatkovnega okvira lahko uporabite tudi pandas `isin()`, tako da ohranite samo vrstice z mesti, ki so na seznamu `cities_to_check_against`.

```python
# Filtering a DataFrame using isin()
filtered_df = df[df['City'].isin(cities_to_check_against)]
print(filtered_df)
```

Rezultat je DataFrame, ki vsebuje samo vrstice z mesti, ki so tudi na seznamu `cities_to_check_against`:

```none
Name    	City
2  Charlize  	Cardiff
3  David  		Hull
```

### Preverjanje več stolpcev v DataFrame

Za bolj zapletene operacije filtriranja lahko uporabite tudi pandas `isin()` s slovarji. V naslednjem primeru boste videli, kako lahko s slovarjem hkrati preverite več stolpcev DataFrame. Najprej bomo dodali stolpec k izvirnemu DataFrame in nato uporabili `isin()`:

```python
# 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)
```

V tem primeru klic `isin()` vrne DataFrame z booleanskimi vrednostmi, ki kažejo, ali so bili pogoji izpolnjeni v vsakem stolpcu:

```none
Name  City  Age
0  False  False  False
1  False  False   True
2  False   True  False
3  False   True   True
```


This is a markdown version of: [https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/python-pandas-dataframe-isin/](https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/python-pandas-dataframe-isin/) for AI/LLM consumption.