Función Pandas DataFrame DataFrame.query()
-
La sintaxis de
pandas.DataFrame.query()
: -
Códigos de ejemplo:
DataFrame.query()
Método con una sola condición -
Códigos de ejemplo:
DataFrame.query()
Método cuando el nombre de la columna tiene un espacio en blanco -
Códigos de ejemplo:
DataFrame.query()
Método con múltiples condiciones
El método pandas.DataFrame.query()
filtra las filas del llamador DataFrame utilizando la expresión de consulta dada.
La sintaxis de pandas.DataFrame.query()
:
DataFrame.query(expr, inplace=False, **kwargs)
Parámetros
expr |
Expresión de consulta basada en la cual se filtran las filas |
inplace |
Booleana. Si es True , modifica la llamada DataFrame en su lugar. |
**kwargs |
Argumentos de palabras clave para el método |
Retorna
Si inplace
es True
, devuelve el DataFrame
filtrado; de lo contrario None
.
Códigos de ejemplo: DataFrame.query()
Método con una sola condición
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)
filtered_df=df.query('X>1')
print("Filtered DataFrame:")
print(filtered_df)
Resultado:
Original DataFrame:
X Y
0 1 4
1 2 1
2 3 8
Filtered DataFrame:
X Y
1 2 1
2 3 8
Devuelve el DataFrame
con sólo las filas que satisfacen la expresión de consulta dada, es decir, sólo las filas cuyo valor en la columna X
es mayor que 1.
Códigos de ejemplo: DataFrame.query()
Método cuando el nombre de la columna tiene un espacio en blanco
Debemos asegurarnos de que los nombres de las columnas a consultar no tengan espacios en blanco antes de aplicar este método a DataFrame
.
Si tenemos nombres de columna con espacios en ellos, podríamos usar las comillas de retroceso (`).
import pandas as pd
df = pd.DataFrame(
{
"X": [
1,
2,
3,
],
"Y": [4, 1, 8],
"A B": [3, 5, 7],
}
)
print("Original DataFrame:")
print(df)
filtered_df = df.query("`A B`>5")
print("Filtered DataFrame:")
print(filtered_df)
Resultado:
Original DataFrame:
X Y A B
0 1 4 3
1 2 1 5
2 3 8 7
Filtered DataFrame:
X Y A B
2 3 8 7
Aquí, la columna A B
tiene un espacio en su nombre. Para hacer una expresión de consulta para la columna, encerramos el nombre de la columna en los backticks; de lo contrario, se producirá un error.
Códigos de ejemplo: DataFrame.query()
Método con múltiples condiciones
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)
filtered_df=df.query('X>1' and 'Y==1')
print("Filtered DataFrame:")
print(filtered_df)
Resultado:
Original DataFrame:
X Y
0 1 4
1 2 1
2 3 8
Filtered DataFrame:
X Y
1 2 1
Si deseamos filtrar DataFrame
basado en múltiples condiciones, combinamos las múltiples expresiones de consulta usando el operador and
para hacer una única expresión de consulta compuesta.
Da el DataFrame
con filas cuyo valor de la columna X
es mayor que 1
, y el valor de la columna Y
es igual a 1
.
Podemos modificar el DataFrame original después de llamar al método query()
estableciendo inplace=True
.
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
filtered_df=df.query('X>1' and 'Y==1',inplace=True)
print(df)
Resultado:
X Y
1 2 1
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn