Limpieza de datos en Python con Pandas
Mi conjunto de datos se ve así:
Nombre Subconjunto Valor
A 67-A-5678 14
A 58-ABC-87555 187
A 45-ASH-87954 5465
S 34-A-8785 454
S 58-ASO-98978 54
S 23-ASH-87895 784
X 98-X-87876 455
X 87-ABC-54578 4545
X 56-ASH-89667 854
Y 09-D-98644 45
Y 87-ABC-78834 98
Y 87-ASH-87455A 4566
L 67-A-87545 78
L 89-GHS-08753 12
L 78-PHU-09876 655
Quiero mantener solo aquellos grupos de filas cuyas columnas “subconjunto” sigan el patrón; *, *ABC, *ASH (Nota: * es cualquier letra o dígito).
Por ejemplo, el resultado debería verse así:
Nombre Subconjunto Valor
A 67-A-5678 14
A 58-ABC-87555 187
A 45-ASH-87954 5465
X 98-X-87876 455
X 87-ABC-54578 4545
X 56-ASH-89667 854
Y 09-D-98644 45
Y 87-ABC-78834 98
Y 87-ASH-87455A 4566
P.D. El conjunto de datos real puede tener muchas columnas/filas.
davy.ai
Salida:
Explicación:
*ABC
y*ASH
. Esto se hace utilizando la funciónstr.contains
aplicada a la columnaSubconjunto
del DataFrame.\w
coincide con cualquier letra o dígito, y*
antes de esto significa cero o más ocurrencias de ello.|
se utiliza para combinar los dos patrones.Esto devuelve el DataFrame filtrado que contiene solo las filas requeridas.