[ Foro de Python ]

Ordenar por uno valores especificos

17-May-2021 10:03
Invitado (Santi)
1 Respuestas

hola, buenas, alguien puede ayudarme con un trabajo que estoy haciendo,
tengo un dataframe con una columna (A) con valores str como :
'1 meses', '2 meses', '13-16 meses', '+ 24 meses', '20-21 meses' ...
y otra columna con valores numericos (B)
y tengo que ordenar las filas usando esas dos columnas por lo que utilizo:

1
df.sort_values(['A', 'B'])

mi problema es que los meses se me ordenan asi:
+24 meses, 1 meses, 13- , 2, 20-, 3,.....

Alguien sabe como se podria poner para que fuera:
1, 2, 3, ...., 13-, 20-, +24

(Utilizo Visual Basic para el python)
Muchas gracias


17-May-2021 10:53
Nacho Cabanes (+84)

Las cadenas de texto se ordenan así.

Puedes añadir un 0 delante cuando corresponda: "01 mes", o bien extraer la subcadena que hay antes del primer espacio, calcular su valor numérico y emplear ese valor como criterio de ordenación.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)