Comment ajouter simplement un niveau de colonne à une dataframe pandas
disons que j'ai un dataframe qui ressemble à ceci:
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
si je considère que cette dataframe existe déjà, comment puis-je simplement ajouter un niveau 'C' à l'index des colonnes pour obtenir ceci:
df
Out[92]:
A B
C C
a 0 0
b 1 1
c 2 2
d 3 3
e 4 4
j'ai vu TELLEMENT de réponse comme ceci python / pandas: comment combiner deux images de données en une seule avec un index de colonne hiérarchique? mais ce concat différent dataframe au lieu d'ajouter un niveau de colonne à une dataframe déjà existante.
-
19
demandé sur
Community
2016-10-24 22:03:52
2 réponses
comme suggéré par @StevenG lui-même, une meilleure réponse:
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
19
répondu
Romain
2016-10-24 19:37:03
option 1set_index
et T
df.T.set_index(np.repeat('C', df.shape[1]), append=True).T
option 2pd.concat
,keys
et swaplevel
pd.concat([df], axis=1, keys=['C']).swaplevel(0, 1, 1)
6
répondu
piRSquared
2016-10-24 19:19:11