0
votes

Comment définir des colonnes de Pandas Dataframe comme liste

 Entrez la description de l'image ici J'ai un fichier de données Pandas et lorsque j'essaie d'acéder ses colonnes (comme df [[" A "] ), il n'est pas possible car Les colonnes sont définies comme un objet "index" ( pandas.core.indexes.base.index ). ou index (['col2', 'col2'], [! [Entrez la description de l'image ici] [1]] [1] dtype = 'objet')

J'ai essayé de le convertir faire quelque chose comme df.columns = df.columns = df.columns.tolist () et aussi df.columns = [str (Col) pour col en DF.Columns] < / code> Mais les colonnes sont restées comme un objet d'index.

Ce que je veux, c'est faire df.columns et il retournerait un objet de liste.

Que puis-je faire?


3 commentaires

Pourriez-vous publier un exemple de votre DataFrame, comme Imprimer ou code pour le recréer


J'ai mis une copie de mon Dataframe et de la liste des colonnes résultant


df.Columns est Toujours une série Index / Multidex, peu importe ce que vous attribuez. Si vous souhaitez une liste de la liste, tolist comme vous l'avez fait, ou Liste (df.Columns) sont la voie à suivre.


3 Réponses :


1
votes

colonnes n'est pas appelable. Donc, vous devez supprimer la parenthèse () :

df.columns vous donnera le nom des colonnes en tant qu'objet.

Liste (df.columns) vous donnera le nom des colonnes sous forme de liste.

Dans votre exemple, Liste (Ss.Columns) retourne une liste de noms de colonnes.


0 commentaires

0
votes

Vous devez envelopper le constructeur de liste sur la liste de la liste comme une liste I.E Liste (Ss.Columns). XXX

J'espère que cela fonctionne!


0 commentaires

1
votes

Essayez ceci:

df.columns.values.tolist()


2 commentaires

En effet, cela me rendrait une liste. Cependant, DOENT modifier le Dataframe, car si j'essaie à nouveau le COMAND DF.Columns, cela retournerait toujours l'objet d'index. Ce que je voulais, c'était de modifier le Dataframe comme un "surplace = vrai"


@ lucas862 ithink Vous recherchez df.rename qui vous permettra de renommer vos colonnes? df.rrename (colonnes = {oldname: newname}, emplacement = true}