Moins cher, plus rapide et plus idiomatique : str.contains
Dans les versions récentes de pandas, vous pouvez utiliser des méthodes de chaîne sur l'index et les colonnes. Ici, str.startswith
semble bien adapté.
Pour supprimer toutes les colonnes commençant par une sous-chaîne donnée :
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
Pour une correspondance insensible à la casse, vous pouvez utiliser une correspondance basée sur regex avec str.contains
avec un ancrage 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 des types mixtes sont possibles, spécifiez na=False
également.