Rimuovere le righe da panda DataFrame basato sulla condizione

Sono un novellino di panda quindi, si prega di perdonare il newbie domanda!

Ho il seguente codice;

import pandas as pd

pet_names = ["Name","Species"
"Jack","Cat"
"Jill","Dog"
"Tom","Cat"
"Harry","Dog"
"Hannah","Dog"]

df = pd.DataFrame(pet_names)

df = df[df['Species']!='Cat']

print(df)

Vorrei eliminare tutte le righe che contengono “Gatto” in “Specie” di colonna, lasciando tutti i cani dietro. Come faccio a fare questo? Purtroppo, questo codice è attualmente la restituzione di errori.

InformationsquelleAutor James Geddes | 2017-08-03



One Reply
  1. 20

    Generale boolean indexing

    df[df['Species'] != 'Cat']
    # df[df['Species'].ne('Cat')]
    
      Index    Name Species
    1     1    Jill     Dog
    3     3   Harry     Dog
    4     4  Hannah     Dog

    df.query

    df.query("Species != 'Cat'")
    
      Index    Name Species
    1     1    Jill     Dog
    3     3   Harry     Dog
    4     4  Hannah     Dog

    Per informazioni sul pd.eval() famiglia di funzioni, le loro caratteristiche e i casi d’uso, si prega di visitare il L’Espressione dinamica di Valutazione in panda utilizzando il pd.la funzione eval().


    df.isin

    df[~df['Species'].isin(['Cat'])]
    
      Index    Name Species
    1     1    Jill     Dog
    3     3   Harry     Dog
    4     4  Hannah     Dog
    • Ho solo con voto positivo è quattro volte per ogni risposta. Troppo male, in MODO da non riconoscere quei click.
    • “AttributeError: ‘DataFrame’ oggetto non ha alcun attributo di ‘Specie'” – che cosa sto facendo di sbagliato?
    • Se si sta utilizzando gli stessi dati, come nel tuo post, ecco perché. Hai problemi con i tuoi dati di input. Prova questo: pet_names = [["Jack","Cat"], ["Jill","Dog"], ["Tom","Cat"], ["Harry","Dog"] ,["Hannah","Dog"] ]; df = pd.DataFrame(pet_names,columns =["Name","Species"]) (da Bharath post)
    • hahaha se solo!
    • Scelte Multiple +1
    • ora avete la mia vota ~consiglia, Inoltre, di df.query, in particolare per l’indice più

Lascia un commento