Tengo un marco de datos con 2415 columnas y quiero eliminar columnas duplicadas consecutivas. Es decir, si la columna 1 y la columna 2 tienen los mismos valores, quiero eliminar la columna 2.

Escribí el siguiente código pero no parece funcionar:

for i in (0,len(df.columns)-1):
    if (df[i].tolist() == df[i+1].tolist()):
        df=df.drop([i+1], axis=1)
    else:
        df=df
0
dododips 27 ago. 2020 a las 05:10

2 respuestas

La mejor respuesta

Debe seleccionar el nombre de la columna del índice. Pruebe esto.

columns = df.columns
drops = []
for i in (0,len(df.columns)-1):
    if (df[columns[i]].tolist() == df[columns[i+1]].tolist()):
        drops.append(columns[i])
df = df.drop(drops,axis=1)
2
dododips 27 ago. 2020 a las 02:25

Probemos shift

df.loc[:,~df.eq(df.astype(object).shift(axis=1)).all()]
2
BEN_YO 27 ago. 2020 a las 02:28