python - how - restart index pandas dataframe
La forma más rápida de eliminar un índice duplicado en un DataFrame de Pandas (3)
Esta pregunta ya tiene una respuesta aquí:
Si quiero eliminar un índice duplicado en un marco de datos, lo siguiente no funciona por razones obvias:
myDF.drop_duplicates(cols=index)
y
myDF.drop_duplicates(cols=''index'')
busca una columna llamada ''index''
Si quiero soltar un índice tengo que hacer:
myDF[''index''] = myDF.index
myDF= myDF.drop_duplicates(cols=''index'')
myDF.set_index = myDF[''index'']
myDF= myDF.drop(''index'', axis =1)
¿Hay alguna forma más eficiente?
El método ''duplicado'' funciona para marcos de datos y para series. Simplemente seleccione en aquellas filas que no están marcadas como que tienen un índice duplicado:
df[~df.index.duplicated()]
Puede usar numpy.unique
para obtener el índice de valores únicos y usar iloc
para obtener esos índices:
>>> df
val
A 0.021372
B 1.229482
D -1.571025
D -0.110083
C 0.547076
B -0.824754
A -1.378705
B -0.234095
C -1.559653
B -0.531421
[10 rows x 1 columns]
>>> idx = np.unique(df.index, return_index=True)[1]
>>> df.iloc[idx]
val
A 0.021372
B 1.229482
C 0.547076
D -1.571025
[4 rows x 1 columns]
Simplemente: DF.groupby(DF.index).first()