En este artículo, discutiremos el filtro NOT IN en pandas, NOT IN es un operador de membresía que se usa para verificar si los datos están presentes en el marco de datos o no. Devolverá verdadero si el valor no está presente, de lo contrario, será falso
Vamos a crear un marco de datos de muestra
Python3
# import pandas module import pandas as pd # create dataframe data1 = pd.DataFrame({'name': ['sravan', 'harsha', 'jyothika'], 'subject1': ['python', 'R', 'php'], 'marks': [96, 89, 90]}, index=[0, 1, 2]) # display data1
Producción:
Método 1: Use el filtro NOT IN con una columna
Estamos utilizando el operador isin() para obtener los valores dados en el marco de datos y esos valores se toman de la lista, por lo que estamos filtrando los valores de una columna del marco de datos que están presentes en esa lista.
Sintaxis : dataframe[~dataframe[nombre_columna].isin(lista)]
dónde
- dataframe es el dataframe de entrada
- column_name es la columna que se filtra
- lista es la lista de valores que se eliminarán en esa columna
Python3
# import pandas module import pandas as pd # create dataframe data1 = pd.DataFrame({'name': ['sravan', 'harsha', 'jyothika'], 'subject1': ['python', 'R', 'php'], 'marks': [96, 89, 90]}, index=[0, 1, 2]) # consider a list list1 = ['harsha', 'jyothika'] # filter in name column print(data1[~data1['name'].isin(list1)]) print("============") # consider a list list2 = ['R'] # filter in name column print(data1[~data1['subject1'].isin(list2)]) print("============") # consider a list list3 = [96, 89] # filter in name column print(data1[~data1['marks'].isin(list3)])
Producción:
Método 2: Use el filtro NOT IN con varias columnas
Ahora podemos filtrar en más de una columna usando la función any(). Esta función verificará el valor que existe en cualquier columna dada y las columnas se dan en [[]] separadas por una coma.
Sintaxis : dataframe[~dataframe[[columnas]].isin(lista).any(eje=1)]
Python3
# import pandas module import pandas as pd # create dataframe data1 = pd.DataFrame({'name': ['sravan', 'harsha', 'jyothika'], 'subject1': ['python', 'R', 'php'], 'marks': [96, 89, 90]}, index=[0, 1, 2]) # consider a list list1 = ['harsha', 'jyothika', 96] # filter in name and marks column print(data1[~data1[['name', 'marks']].isin(list1).any(axis=1)]) print("============") # consider a list list2 = ['R', 'sravan'] # filter in name and subject1 column print(data1[~data1[['subject1', 'name']].isin(list2).any(axis=1)])
Producción:
Método 3: use numpy con el filtro NOT IN
Esto es similar a la funcionalidad anterior.
Sintaxis: dataframe[~numpy.isin(dataframe[‘column’], list)]
Python3
# import pandas module import numpy as np import pandas as pd # create dataframe data1 = pd.DataFrame({'name': ['sravan', 'harsha', 'jyothika'], 'subject1': ['python', 'R', 'php'], 'marks': [96, 89, 90]}, index=[0, 1, 2]) # consider a list list1 = ['harsha', 'jyothika', 96] # filter in name column data1[~np.isin(data1['name'], list1)]
Producción:
Publicación traducida automáticamente
Artículo escrito por sravankumar8128 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA