una seleccionar recorrer filas fila extraer data crear columnas columna python pandas contains

python - seleccionar - Pandas: verifica si existe una fila con ciertos valores



seleccionar columnas de un dataframe python (3)

Tengo un DataFrame de pandas bidimensional (o más) como este:

>>> import pandas as pd >>> df = pd.DataFrame([[0,1],[2,3],[4,5]], columns=[''A'', ''B'']) >>> df A B 0 0 1 1 2 3 2 4 5

Ahora suponga que tengo una matriz numpy como np.array([2,3]) y quiero verificar si hay alguna fila en df que coincida con el contenido de mi matriz. Aquí la respuesta debería ser obviamente verdadera, pero por ejemplo. np.array([1,2]) debe devolver falso ya que no hay una fila con 1 en la columna A y 2 en la columna B.

Claro que esto es fácil pero no lo veo ahora mismo.


Resulta que es muy fácil, lo siguiente hace el trabajo aquí:

>>> ((df[''A''] == 2) & (df[''B''] == 3)).any() True >>> ((df[''A''] == 1) & (df[''B''] == 2)).any() False

Tal vez alguien encuentre una mejor solución que permita pasar directamente la matriz y la lista de columnas para que coincidan.

Tenga en cuenta que los paréntesis alrededor de df[''A''] == 2 no son opcionales, ya que el operador & une con la misma fuerza que el operador == .


Si también desea devolver el índice donde ocurrieron las coincidencias:

index_list = df[(df[''A''] == 2)&(df[''B''] == 3)].index.tolist()


Una forma más fácil es:

a = np.array([2,3]) (df == a).all(1).any()