Cómo ordenar valores en un marco de datos de Pandas2 min lectura

A menudo, es posible que le interese ordenar un DataFrame de pandas por una o más columnas. Este tutorial explica cómo hacerlo usando la función pandas sort_values .

HOLA, estas en Statologos la enciclopedia más grande de estadística aplicada en español, no olvides que tienes un potente buscador de información en el menú utilizalo sabiamente 😉

Cómo ordenar los marcos de datos de pandas

Supongamos que tenemos el siguiente DataFrame de pandas con 10 filas y 4 columnas:

importar pandas como pd
 importar numpy como np

#create DataFrame
df = pd.DataFrame ({'jugador': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J '],
                   'puntos': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19],
                   'asiste': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5],
                   'rebotes': [np.nan, 8, 10, 6, 6, 9, 6, 10, 10, 7]})

df

	puntos de jugador ayuda a rebotes
0 A 25 5 NaN
1 B 20 7 8
2 C 14 7 10
3 D 16 8 6
4 E 27 5 6
5 F 20 7 9
6 G 12 6 6
7 H 15 9 10
8 yo 14 9 10
9 J 19 5 7

Ejemplo 1: Ordenar por una columna ascendente.

El siguiente fragmento de código muestra cómo ordenar el DataFrame por una columna en orden ascendente:

#ordenar por asistencias de menor a mayor 
df. sort_values (por = [' asistencias '])

	puntos de jugador ayuda a rebotes
0 A 25 5 NaN
4 E 27 5 6,0
9 J 19 5 7,0
6 G 12 6 6,0
1 B 20 7 8,0
2 C 14 7 10,0
5 F 20 7 9,0
3 D 16 8 6,0
7 H 15 9 10,0
8 I 14 9 10,0

Ejemplo 2: Ordenar por una columna descendente.

El siguiente fragmento de código muestra cómo ordenar el DataFrame por una columna en orden ascendente:

#ordenar por rebotes de mayor a menor 
df. sort_values (por = [' rebotes '], ascendente = Falso )

	puntos de jugador ayuda a rebotes
2 C 14 7 10,0
7 H 15 9 10,0
8 I 14 9 10,0
5 F 20 7 9,0
1 B 20 7 8,0
9 J 19 5 7,0
3 D 16 8 6,0
4 E 27 5 6,0
6 G 12 6 6,0
0 A 25 5 NaN

Tenga en cuenta que si ordena por una columna de caracteres, ascendente = Falso ordenará las filas en orden alfabético inverso:

#ordenar por carácter columna 
df. sort_values (por = [' jugador '], ascendente = Falso )

	puntos de jugador ayuda a rebotes
9 J 19 5 7,0
8 I 14 9 10,0
7 H 15 9 10,0
6 G 12 6 6,0
5 F 20 7 9,0
4 E 27 5 6,0
3 D 16 8 6,0
2 C 14 7 10,0
1 B 20 7 8,0
0 A 25 5 NaN

Ejemplo 3: ordenar por varias columnas.

El siguiente fragmento de código muestra cómo ordenar el DataFrame por varias columnas, cada una en orden ascendente:

#ordenar por asistencias ascendentes, luego rebotes ascendentes 
df. sort_values (por = [' asistencias ', ' rebotes '])

	puntos de jugador ayuda a rebotes
4 E 27 5 6,0
9 J 19 5 7,0
0 A 25 5 NaN
6 G 12 6 6,0
1 B 20 7 8,0
5 F 20 7 9,0
2 C 14 7 10,0
3 D 16 8 6,0
7 H 15 9 10,0
8 I 14 9 10,0

Tenga en cuenta que también puede ordenar una columna en forma ascendente y otra descendente pasando varios argumentos en forma ascendente :

#ordenar por asistencias ascendentes, luego rebotes descendentes 
df. sort_values (por = [' asistencias ', ' rebotes '], ascendente = [ Verdadero , Falso ])


puntos de jugador ayuda a rebotes
9 J 19 5 7,0
4 E 27 5 6,0
0 A 25 5 NaN
6 G 12 6 6,0
2 C 14 7 10,0
5 F 20 7 9,0
1 B 20 7 8,0
3 D 16 8 6,0
7 H 15 9 10,0
8 I 14 9 10,0

Ejemplo 4: primero ordene los NaN.

De forma predeterminada, los pandas colocan los NaN en último lugar, pero puede especificar que los NaN se coloquen primero:

#ordenar por asistencias ascendentes, luego rebotes descendentes 
df. sort_values (por = [' rebotes '], na_position = ' primero ')


	puntos de jugador ayuda a rebotes
0 A 25 5 NaN
3 D 16 8 6,0
4 E 27 5 6,0
6 G 12 6 6,0
9 J 19 5 7,0
1 B 20 7 8,0
5 F 20 7 9,0
2 C 14 7 10,0
7 H 15 9 10,0
8 I 14 9 10,0

Puede encontrar la documentación completa para la función sort_values aquí .

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

A menudo, es posible que desee cambiar los tamaños de fuente de varios elementos en un diagrama de Matplotlib. Afortunadamente,…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!