tablas - Python, ordena el marco de datos descendente con pandas
seleccionar columnas en pandas (5)
Estoy tratando de ordenar un marco de datos descendiendo. Puse "Falso" en el argumento ascendente, pero mi orden sigue ascendiendo.
Mi código es:
from pandas import DataFrame
import pandas as pd
d = {''one'':[2,3,1,4,5],
''two'':[5,4,3,2,1],
''letter'':[''a'',''a'',''b'',''b'',''c'']}
df = DataFrame(d)
test = df.sort([''one''], ascending=[False])
pero la salida es
letter one two
2 b 1 3
0 a 2 5
1 a 3 4
3 b 4 2
4 c 5 1
Edición: Esto está desactualizado, vea la respuesta de @Merlin.
[False]
, al ser una lista no vacía, no es lo mismo que False
. Deberías escribir:
test = df.sort(''one'', ascending=False)
Nueva sintaxis (cualquiera)
test = df.sort_values([''one''], ascending=[False])
test = df.sort_values([''one''], ascending=[0])
Para pandas 0.17 y superiores, usa esto:
test = df.sort_values(''one'', ascending=False)
Dado que ''uno'' es una serie en el marco de datos de pandas, por lo tanto, los pandas no aceptarán los argumentos en forma de lista.
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_values.html
No creo que debas proporcionar el valor False
entre corchetes (nunca), también los valores de columna cuando son más de uno, ¡entonces solo se proporcionan como una lista! No como [''one'']
.
test = df.sort_values(by=''one'', ascending = False)
from pandas import DataFrame
import pandas as pd
d = {''one'':[2,3,1,4,5],
''two'':[5,4,3,2,1],
''letter'':[''a'',''a'',''b'',''b'',''c'']}
df = DataFrame(d)
test = df.sort_values([''one''], ascending=False)
test