Más barato, más rápido e idiomático: str.contains
En versiones recientes de pandas, puede usar métodos de cadena en el índice y las columnas. Aquí, str.startswith
parece una buena opción.
Para eliminar todas las columnas que comienzan con una subcadena determinada:
df.columns.str.startswith('Test')
# array([ True, False, False, False])
df.loc[:,~df.columns.str.startswith('Test')]
toto test2 riri
0 x x x
1 x x x
Para la coincidencia que no distingue entre mayúsculas y minúsculas, puede utilizar la coincidencia basada en expresiones regulares str.contains
con un ancla SOL:
df.columns.str.contains('^test', case=False)
# array([ True, False, True, False])
df.loc[:,~df.columns.str.contains('^test', case=False)]
toto riri
0 x x
1 x x
si los tipos mixtos son una posibilidad, especifique na=False
también.