Récupérer efficacement des colonnes avec des correspondances de chaînes partielles
Dans le domaine de la manipulation de données, trouver une colonne spécifique dans un dataframe peut être une nécessité courante . Cependant, que se passe-t-il si vous devez rechercher un modèle particulier dans les noms de colonnes mais ignorer les correspondances exactes ? Par exemple, si vous avez des noms comme « spike-2 », « hey Spike » et « spike-in » et que vous souhaitez localiser une colonne contenant « spike », vous risquez de rencontrer des obstacles.
Problème :
Identifier une colonne dont le nom contient une chaîne spécifiée, même s'il ne s'agit pas d'une correspondance exacte, peut être difficile.
Solution :
Pour surmonter ce problème, utilisez une boucle complète dans les colonnes du dataframe, en examinant chaque nom pour la chaîne souhaitée. Ceci peut être réalisé avec une compréhension de liste :
<code class="python">[col for col in df.columns if 'spike' in col]</code>
Cet extrait génère une liste comprenant tous les noms de colonnes qui répondent à la condition spécifiée.
Exemple :
Considérez le dataframe suivant :
<code class="python">data = {'spike-2': [1,2,3], 'hey spke': [4,5,6], 'spiked-in': [7,8,9], 'no': [10,11,12]} df = pd.DataFrame(data) spike_cols = [col for col in df.columns if 'spike' in col]</code>
Sortie :
['spike-2', 'spiked-in']
Approche alternative :
Pour une solution plus concise, envisagez en utilisant la méthode de filtrage :
<code class="python">df2 = df.filter(regex='spike')</code>
Cette approche aboutit à une trame de données contenant uniquement les colonnes qui satisfont à la condition d'expression régulière spécifiée :
spike-2 spiked-in 0 1 7 1 2 8 2 3 9
En appliquant ces techniques, vous pouvez récupérer efficacement les colonnes dans une trame de données, même lorsque leurs noms ne correspondent pas exactement à une chaîne souhaitée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!