Comment sélectionner et supprimer des colonnes avec un nom en double dans pandas DataFrame
J'ai un énorme DataFrame
où certaines colonnes ont le même nom. Quand j'ai essayer de choisir une colonne qui existe en deux fois, (par exemple de del df['col name']
ou df2=df['col name']
) j'obtiens une erreur. Que puis-je faire?
source d'informationauteur user3107640
Vous devez vous connecter pour publier un commentaire.
Vous pouvez adresse colonnes par index:
Ou vous pouvez renommer des colonnes, comme
Ce n'est pas une bonne situation. Le mieux serait de créer une hiérarchie de la colonne système d'étiquetage (Pandas permet à plusieurs niveaux de la colonne d'étiquetage ou de la ligne étiquettes d'index). Déterminer ce qui rend les deux colonnes différentes qui ont le même nom de réellement différents les uns des autres et en tirer parti pour créer une organisation hiérarchique des index de colonne.
Dans le temps de le dire, si vous savez que la localisation des colonnes dans la liste de colonnes (par exemple, de
dataframe.columns
), alors vous pouvez utiliser de nombreux explicite de l'indexation de fonctionnalités, telles que.ix[]
ou.iloc[]
pour récupérer des valeurs de la colonne en position.Vous pouvez également créer des copies des colonnes avec de nouveaux noms, tels que:
où
column_position
références de la de position emplacement de la colonne que vous essayez d'obtenir (pas le nom).Ces peut ne pas fonctionner pour vous si les données sont trop volumineuses, cependant. Alors le mieux est de trouver un moyen de modifier le processus de construction pour obtenir la hiérarchie de l'index de colonne.
Une autre solution:
La sortie est
La fonction suivante supprime les colonnes avec dublicate noms et ne garde qu'un seul. Pas exactement ce que vous avez demandé, mais vous pouvez utiliser les cisailles à résoudre votre problème. L'idée est de retourner les numéros d'index et ensuite, vous pouvez donner une adresse de colonne spécifique indices directement. Les indices sont unique, tandis que les noms de colonnes ne sont pas
où
est la partie que vous avez besoin