una sort ordenar lista python pandas numpy dataframe

sort - ordenar lista python



El objeto ''DataFrame'' no tiene el atributo ''sort'' (2)

Me enfrento a un problema aquí, en mi paquete de Python tengo la instalación numpy, pero todavía tengo este error ''El objeto'' DataFrame ''no tiene el atributo'' sort ''

Cualquiera me puede dar una idea ...

Este es mi código:

final.loc[-1] =['''', ''P'',''Actual''] final.index = final.index + 1 # shifting index final = final.sort() final.columns=[final.columns,final.iloc[0]] final = final.iloc[1:].reset_index(drop=True) final.columns.names = (None, None)


Pandas Clasificación 101

sort ha sido reemplazado en v0.20 por DataFrame.sort_values y DataFrame.sort_index . Aparte de esto, también tenemos argsort .

Aquí hay algunos casos de uso comunes en la clasificación, y cómo resolverlos usando las funciones de clasificación en la API actual. Primero, la configuración.

# Setup np.random.seed(0) df = pd.DataFrame({''A'': list(''accab''), ''B'': np.random.choice(10, 5)}) df A B 0 a 7 1 c 9 2 c 3 3 a 5 4 b 2

Ordenar por columna individual

Por ejemplo, para ordenar df por la columna "A", use sort_values con un solo nombre de columna:

df.sort_values(by=''A'') A B 0 a 7 3 a 5 4 b 2 1 c 9 2 c 3

Si necesita un RangeIndex nuevo, use DataFrame.reset_index .

Ordenar por múltiples columnas

Por ejemplo, para ordenar por col "A" y "B" en df , puede pasar una lista a sort_values :

df.sort_values(by=[''A'', ''B'']) A B 3 a 5 0 a 7 4 b 2 2 c 3 1 c 9

Ordenar por índice de marco de datos

df2 = df.sample(frac=1) df2 A B 1 c 9 0 a 7 2 c 3 3 a 5 4 b 2

Puede hacer esto usando sort_index :

df2.sort_index() A B 0 a 7 1 c 9 2 c 3 3 a 5 4 b 2 df.equals(df2) # False df.equals(df2.sort_index()) # True

Aquí hay algunos métodos comparables con su rendimiento:

%timeit df2.sort_index() %timeit df2.iloc[df2.index.argsort()] %timeit df2.reindex(np.sort(df2.index)) 605 µs ± 13.6 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) 610 µs ± 24.2 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) 581 µs ± 7.63 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

Ordenar por lista de índices

Por ejemplo,

idx = df2.index.argsort() idx # array([0, 7, 2, 3, 9, 4, 5, 6, 8, 1])

Este problema de "clasificación" es en realidad un simple problema de indexación. Simplemente pasar etiquetas enteras a iloc servirá.

df.iloc[idx] A B 1 c 9 0 a 7 2 c 3 3 a 5 4 b 2


sort() fue obsoleto para DataFrames a favor de:

sort() quedó en desuso (pero aún está disponible) en Pandas con la versión 0.17 (2015-10-09) con la introducción de sort_values() y sort_index() . Fue eliminado de Pandas con la versión 0.20 (2017-05-05).