Cómo organizar las columnas de una tabla pivote de pandas?
¿Cómo puedo organizar las columnas de una tabla dinámica de pandas?
Por ejemplo, para el resultado de la tabla dinámica, ¿cómo puedo intercambiar las posiciones de D y E y cómo puedo intercambiar las posiciones de large y small?
EDIT: Estoy buscando una solución que permita un orden personalizado que funcione para otras instancias.
DataFrame de muestra:
import pandas as pd
import numpy as np
df = pd.DataFrame({"A": ["foo", "foo", "foo", "foo", "foo",
"bar", "bar", "bar", "bar"],
"B": ["one", "one", "one", "two", "two",
"one", "one", "two", "two"],
"C": ["small", "large", "large", "small",
"small", "large", "small", "small",
"large"],
"D": [1, 2, 2, 3, 3, 4, 5, 6, 7],
"E": [2, 4, 5, 5, 6, 6, 8, 9, 9]})
DataFrame:
A B C D E
0 foo one small 1 2
1 foo one large 2 4
2 foo one large 2 5
3 foo two small 3 5
4 foo two small 3 6
5 bar one large 4 6
6 bar one small 5 8
7 bar two small 6 9
8 bar two large 7 9
Código utilizado para hacer la tabla dinámica:
display(pd.pivot_table(df, index=['A', 'B'], columns=['C'], values=['D', 'E'], aggfunc=np.sum))
Resultado de la tabla dinámica:
D E
C large small large small
A B
bar one 4.0 5.0 6.0 8.0
two 7.0 6.0 9.0 9.0
foo one 4.0 1.0 9.0 2.0
two NaN 6.0 NaN 11.0
davy.ai
Para organizar las columnas de una tabla dinámica de pandas, primero puedes crear la tabla dinámica utilizando la función
pd.pivot_table
conindex
,columns
yvalues
especificados. Una vez creada la tabla dinámica, puedes utilizar la indexación y la renombración de columnas para reorganizar las columnas según desees.Para el dataframe de ejemplo y la tabla dinámica proporcionados, para intercambiar las posiciones de las columnas D y E y cambiar las posiciones de las columnas “small” y “large”, puedes utilizar el siguiente código:
Esto producirá el siguiente resultado:
Este código primero reorganiza las columnas para intercambiar D y E y para colocar “small” antes de “large”. Luego, renombra las columnas para intercambiar “large” y “small”. Este código resulta en una tabla dinámica de orden personalizado que se puede utilizar para otras instancias.