Les Pandas DataFrame d'empiler plusieurs valeurs de colonne en colonne unique
En supposant que la suite DataFrame:
key.0 key.1 key.2 topic
1 abc def ghi 8
2 xab xcd xef 9
Comment puis-je combiner les valeurs de toutes les clés.* les colonnes en une seule colonne, 'key', qui est associé avec le sujet de la valeur correspondant à la touche.* les colonnes? C'est le résultat que je veux:
topic key
1 8 abc
2 8 def
3 8 ghi
4 9 xab
5 9 xcd
6 9 xef
Noter que le nombre de clés.N colonnes est variable sur certaines externe N.
OriginalL'auteur borice | 2015-12-19
Vous devez vous connecter pour publier un commentaire.
Vous pouvez faire fondre votre dataframe:
Il vous donne également la source de la clé.
De
v0.20
,melt
de première classe est fonction de lapd.DataFrame
classe:OriginalL'auteur Alexander
Après avoir essayé diverses façons, je trouve que la suite est plus ou moins intuitive, à condition
stack
'la magie est compris:L'résultant dataframe est:
Vous pouvez imprimer les résultats intermédiaires pour comprendre le processus dans sa totalité. Si vous ne me dérange pas d'avoir plus de colonnes que nécessaire, les étapes clés sont
set_index('topic')
,stack()
etreset_index(name='key')
.name
argument pourreset_index
, pourriez-vous expliquer comment cela fonctionne?c'est la Série.reset_index()
OriginalL'auteur miraculixx
OK , parce que l'un des réponse est la marque sous forme de double de cette question, je vais répondre ici.
En Utilisant
wide_to_long
OriginalL'auteur Wen-Ben