Ce face Series.isin() și DataFrame.isin()
Series.isin(lista) returnează o mască booleană: True unde valoarea se află în listă, False în rest. Folosită ca filtru, df[df["oras"].isin(["Iași", "Cluj"])] înlocuiește o înșiruire lungă de condiții == legate cu |. Cu ~ în față păstrezi rândurile care nu sunt în listă.
DataFrame.isin() verifică toate celulele. Dacă primește un dicționar, fiecare coloană este comparată doar cu lista de la cheia ei; coloanele care lipsesc din dicționar dau False.
Parametri
| Parametru | Descriere |
|---|---|
values |
O listă, un set, un Series sau (la DataFrame.isin) un dicționar {coloana: lista}. Un singur text trebuie pus tot într-o listă: ["Iași"]. |
Ce returnează
Un Series sau un DataFrame de valori booleene, cu aceeași formă ca datele inițiale.
Exemple
Exemplul 1: Filtrare după mai multe orașe
import pandas as pd
df = pd.DataFrame({
"nume": ["Ana", "Mihai", "Ioana", "Andrei", "Elena"],
"oras": ["Iași", "Cluj", "Timișoara", "Cluj", "Brașov"],
})
orase = ["Iași", "Cluj"]
print(df["oras"].isin(orase))
print()
print(df[df["oras"].isin(orase)])
print()
print(df[~df["oras"].isin(orase)])
Rezultat
0 True
1 True
2 False
3 True
4 False
Name: oras, dtype: bool
nume oras
0 Ana Iași
1 Mihai Cluj
3 Andrei Cluj
nume oras
2 Ioana Timișoara
4 Elena Brașov
Exemplul 2: DataFrame.isin cu un dicționar
Coloana oras se compară cu lista ei, coloana nota cu lista ei. Coloana nume nu apare în dicționar, deci dă peste tot False.
import pandas as pd
df = pd.DataFrame({
"nume": ["Ana", "Mihai", "Ioana"],
"oras": ["Iași", "Cluj", "Iași"],
"nota": [10, 7, 9],
})
rezultat = df.isin({"oras": ["Iași"], "nota": [9, 10]})
print(rezultat)
print()
print(df[rezultat["oras"] & rezultat["nota"]])
Rezultat
nume oras nota
0 False True True
1 False False False
2 False True True
nume oras nota
0 Ana Iași 10
2 Ioana Iași 9
Greșeli frecvente
- Dai un singur text în loc de listă:
s.isin("Iași")aruncăTypeError. Scries.isin(["Iași"]). - Te aștepți să găsească bucăți de text:
isin(["Iaș"])nu potrivește „Iași”. Compararea este pe valoarea întreagă; pentru subșiruri folosește.str.contains(). - Diferențe mici de scriere: „Iasi” fără diacritice sau cu spațiu la final nu este egal cu „Iași”. Curăță datele înainte (de exemplu cu
.str.strip()).
Comenzi înrudite
Filtrare cu condiții (boolean indexing): Păstrează doar rândurile care îndeplinesc o condiție, cu operatorii &, |, ~ pentru condiții compuse și Series.between pentru intervale.DataFrame.query(): Filtrează rândurile cu o condiție scrisă ca text, de exemplu „nota > 8 and oras == ‘Iași'”, cu variabile prin @.Series.str (lower, upper, strip, len, replace, slice): Accesorul .str aplică metode de text pe fiecare valoare dintr-o coloană: litere mici, spații, lungime, înlocuire, tăiere.value_counts(): Numără de câte ori apare fiecare valoare într-o coloană (sau fiecare combinație de valori pe rânduri), în ordine descrescătoare.
Întrebări & Exemple de Cod:
Series.isin() și DataFrame.isin()Ai o nelămurire despre utilizarea comenzii
Series.isin() și DataFrame.isin()sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.