Eliminar columnas sin nombre en el dataframe de pandas

Tengo un archivo de datos de las columnas AG como abajo, pero cuando lo estoy leyendo con pd.read_csv('data.csv') se imprime una columna unnamed adicional al final sin ninguna razón.

 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 

He visto mi archivo de datos varias veces pero no tengo datos adicionales en ninguna otra columna. ¿Cómo debo eliminar esta columna extra al leer? Gracias

 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 primera columna tiene valores de índice, entonces puede hacer esto en su lugar:

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

En primer lugar, busque las columnas con el nombre ‘sin nombre’ y luego suelte esas columnas.

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

La solución aprobada no funciona en mi caso, por lo que mi solución es la siguiente:

  ''' 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) 

Espero que ayude a los demás.

La función pandas.DataFrame.dropna () elimina los valores faltantes (por ejemplo, NaN, NaT).

Por ejemplo, el siguiente código eliminaría cualquier columna de su dataframe, donde faltan todos los elementos de esa columna.

 df.dropna(how='all', axis='columns')