tutorial tablas seleccionar recorrer para leer funciones filtrar filas español datos data crear columnas columna agregar python pandas dataframe multi-level

python - tablas - Cómo simplemente agregar un nivel de columna a un marco de datos de pandas



recorrer filas pandas (2)

Digamos que tengo un marco de datos que se ve así:

df = pd.DataFrame(index=list(''abcde''), data={''A'': range(5), ''B'': range(5)}) df Out[92]: A B a 0 0 b 1 1 c 2 2 d 3 3 e 4 4

Suponiendo que este marco de datos ya existe, ¿cómo puedo simplemente agregar un nivel ''C'' al índice de la columna para obtener esto?

df Out[92]: A B C C a 0 0 b 1 1 c 2 2 d 3 3 e 4 4

Vi a SO como esta python / pandas: ¿cómo combinar dos marcos de datos en uno con un índice de columna jerárquico? pero esto concatena un marco de datos diferente en lugar de agregar un nivel de columna a un marco de datos ya existente.

-


Como lo sugirió el propio @StevenG, una mejor respuesta:

df.columns = pd.MultiIndex.from_product([df.columns, [''C'']]) print(df) # A B # C C # a 0 0 # b 1 1 # c 2 2 # d 3 3 # e 4 4


Opción 1
set_index y T

df.T.set_index(np.repeat(''C'', df.shape[1]), append=True).T

opcion 2
pd.concat , keys , y swaplevel

pd.concat([df], axis=1, keys=[''C'']).swaplevel(0, 1, 1)