una seleccionar recorrer por panda ordenar hacer funciones funcion documentacion data columnas columna python python-2.7 pandas data-analysis

python - seleccionar - recorrer data frame pandas



¿Cómo ordenar un DataFrame en python pandas por dos o más columnas? (2)

A partir de pandas 0.17.0, DataFrame.sort() está en desuso y configurado para eliminarse en una versión futura de pandas. La forma de ordenar un dataframe por sus valores ahora es DataFrame.sort_values

Como tal, la respuesta a su pregunta sería ahora

df.sort_values([''b'', ''c''], ascending=[True, False], inplace=True)

Supongamos que tengo un Data-Frame con columnas ab & c, quiero ordenar el data-Frame por la columna b en ascendente, y por la columna c en descendente, ¿cómo hago esto?


A partir de la versión 0.17.0, el método de sort quedó en desuso en favor de sort_values . sort fue eliminado por completo en la versión 0.20.0. Los argumentos (y resultados) siguen siendo los mismos:

df.sort_values([''a'', ''b''], ascending=[True, False])

Puede usar el argumento de sort ascendente:

df.sort([''a'', ''b''], ascending=[True, False])

Por ejemplo:

In [11]: df1 = pd.DataFrame(np.random.randint(1, 5, (10,2)), columns=[''a'',''b'']) In [12]: df1.sort([''a'', ''b''], ascending=[True, False]) Out[12]: a b 2 1 4 7 1 3 1 1 2 3 1 2 4 3 2 6 4 4 0 4 3 9 4 3 5 4 1 8 4 1

Como lo comentó @renadeen

¡Sort no está en su lugar por defecto! Por lo tanto, debe asignar el resultado del método de clasificación a una variable o agregar inplace = Verdadero a la llamada al método.

es decir, si desea reutilizar df1 como un DataFrame ordenado:

df1 = df1.sort([''a'', ''b''], ascending=[True, False])

o

df1.sort([''a'', ''b''], ascending=[True, False], inplace=True)