Filter lines on pandas by a list

0

Given the dataframe below, I'd like to filter the row data based on the 'Filterlist' list.

    nome    valor
0   foo     2
1   bar     3
2   fiz     2
3   zaz     5
4   foo     6
5   far     7
6   bar     2
7   fiz     9
8   zoo     6
9   boo     3
10  zuz     8
11  zuz     10

listaFiltro = ['fiz', 'zoo', 'far']

Thanks in advance for your help!

    
asked by anonymous 22.06.2018 / 15:52

1 answer

1

In a very simplified way, you can use this:

def listaFiltro(dataframe, primeiro, segundo, terceiro):
       return dataframe[(dataframe['nome']==primeiro) | (dataframe['nome'] == segundo) | (dataframe['nome'] == terceiro)]
df_teste = listaFiltro('fiz', 'zoo', 'far')
df_teste

Example 2:

In this case to pass a variable list, you can use the isin function as below.

def listaFiltro(dataframe, valores):
    return dataframe.loc[dataframe['nome'].isin(valores)]
lista = ['fiz', 'zoo', 'far']
dfteste = listaFiltro(df, lista)
dfteste
    
22.06.2018 / 16:58