El filtrado de datos en SQL utiliza principalmente declaraciones como where, and y in. En Python, hay muchas maneras de implementar la detección, utilizando los operadores lógicos AND & o | NOT ~ y la función isin(). Sintamos la diferencia entre los dos:
Resumen:
tipo | Referencia de declaración de Python |
filtro de condición única | datos[datos['tipo_tienda']=='A'] |
Filtrado por múltiples valores | datos[datos['uid'].isin([17437864,17402857])] |
Filtrar sin ciertos valores | datos[~datos['AB_group'].isin(['A','B'])] |
Y filtro condicional | datos[(datos['shop_type']=='A')&(datos['order_count']>=20)] |
o proyección condicional | datos[(datos['order_count']>=100)|(datos['order_shops']>=100)] |
Filtrado por una sola condición
Ejemplo: detección de tiendas de clase A
select
*
from t_store_order
where shop_type = 'A'
data[data['shop_type']=='A']
Código detallado:
== se usa para juzgar si dos valores son iguales;
data['shop_type']=='A' devuelve datos booleanos y devuelve aquellas filas cuyo valor es verdadero.
resultado de la operación:
isin() filtrando dentro de algún rango de valores
Ejemplo: consulta de datos para una identificación de usuario determinada
select
*
from t_store_order
where uid in (17437864,17402857)
data[data['uid'].isin([17437864,17402857])]
Código detallado:
[17437864,17402857] es una lista entre corchetes;
El método isin() se usa para determinar si un valor está en una lista y devuelve un objeto de serie booleana;
data['uid'] son datos en formato Serie, y se puede llamar al método isin();
resultado de la operación:
Excluir ciertos valores (filtro sin ciertos valores)
Ejemplo: Eliminar datos agrupados en A y B
select
*
from t_store_order
where AB_group not in ('A','B')
data[~data['AB_group'].isin(['A','B'])]
Código detallado:
~ Representa el operador de inversión, True se convertirá en False y False se convertirá en True;
En el párrafo anterior, aprendimos que data[~data['AB_group'].isin(['A','B'])] generará un objeto de serie booleana. Después de agregar el operador de inversión, los valores contenidos originalmente Se vuelve a quitar estos valores.
resultado de la operación:
consultar un rango
Ejemplo: Consultar registros con pedidos mayores a 20
select
*
from t_store_order
where shop_type = 'A'
data[data['shop_type']=='A']
Filtro multicondiciones
y condición
Ejemplo: Consultar los registros donde el tipo de tienda es A y el número de pedidos es mayor a 20
select
*
from t_store_order
where shop_type = 'A'
and order_count >= 20
data[(data['shop_type']=='A')&(data['order_count']>=20)]
Código detallado:
& representa el operador AND;
De esta manera (objeto de serie booleana) & (objeto de serie booleana) dos series booleanas realizan una operación AND y devuelven True solo si son True al mismo tiempo;
resultado de la operación:
o condición
Ejemplo: Consulta de registros donde el número de pedidos es mayor a 100 o el número de tiendas donde se realizan pedidos es mayor a 100
select
*
from t_store_order
where shop_type = 'A'
data[(data['order_count']>=100)|(data['order_shops']>=100)]
Código detallado:
| representa el operador or;
Dos series booleanas se combinan con AND, y si una es verdadera, devolverá verdadero, y si es falsa, el resultado será falso;
resultado de la operación:
apéndice:
El método para ejecutar SQL en jupyter notebook: comparar SQL con aprender Python: ejecutar SQL en jupyter notebook_Zi Angzhang's Blog-CSDN Blog