web-dev-qa-db-fra.com

Supprimer les colonnes sans nom dans le cadre de données pandas

J'ai un fichier de données des colonnes A-G comme ci-dessous, mais lorsque je le lis avec pd.read_csv('data.csv'), il affiche une colonne unnamed supplémentaire à la fin sans raison. 

colA    ColB    colC    colD    colE    colF    colG    Unnamed: 7
44      45      26      26      40      26      46        NaN
47      16      38      47      48      22      37        NaN
19      28      36      18      40      18      46        NaN
50      14      12      33      12      44      23        NaN
39      47      16      42      33      48      38        NaN

J'ai vu mon fichier de données à plusieurs reprises, mais je n'ai aucune donnée supplémentaire dans une autre colonne. Comment puis-je supprimer cette colonne supplémentaire en lisant? Merci

18
muazfaiz
In [162]: df.loc[:, ~df.columns.str.contains('^Unnamed')]
Out[162]:
   colA  ColB  colC  colD  colE  colF  colG
0    44    45    26    26    40    26    46
1    47    16    38    47    48    22    37
2    19    28    36    18    40    18    46
3    50    14    12    33    12    44    23
4    39    47    16    42    33    48    38

si la première colonne a des valeurs d'index, vous pouvez le faire à la place:

pd.read_csv('data.csv', index_col=0)
49
MaxU

tout d'abord, recherchez les colonnes par leur nom "unnamed" puis déposez-les.

     df.drop(df.columns[df.columns.str.contains('unnamed',case = False)],axis = 1)
10
Adil Warsi

La solution approuvée ne fonctionne pas dans mon cas, ma solution est donc la suivante:

    ''' The column name in the example case is "Unnamed: 7"
 but it works with any other name ("Unnamed: 0" for example). '''

        df.rename({"Unnamed: 7":"a"}, axis="columns", inplace=True)

        # Then, drop the column as usual.

        df.drop(["a"], axis=1, inplace=True)

J'espère que ça aide les autres.

1
Ezarate11

use.dropna 

df.dropna(how='all', axis=1)
0
Susan