Comment sélectionner les colonnes à partir de groupby objet dans les pandas?
J'ai regroupé mes dataframe par les deux colonnes ci-dessous
df = pd.DataFrame({'a': [1, 1, 3],
'b': [4.0, 5.5, 6.0],
'c': [7L, 8L, 9L],
'name': ['hello', 'hello', 'foo']})
df.groupby(['a', 'name']).median()
et le résultat est:
b c
a name
1 hello 4.75 7.5
3 foo 6.00 9.0
Comment puis-je accéder à la name
domaine de la médiane (dans ce cas hello, foo
)? Cette échoue:
df.groupby(['a', 'name']).median().name
OriginalL'auteur user248237dfsf | 2013-10-05
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour obtenir l'indice des valeurs, ils ne sont pas des colonnes. Dans ce cas, le niveau 1
Vous pouvez également passer le nom de l'index
que ce sera plus intuitif que de passer à des valeurs entières.
Vous pouvez convertir les valeurs de l'index d'une liste en appelant
tolist()
index.get_level_values('name')
.Oui, j'ai oublié que vous pourriez le faire aussi, je suis paresseux à taper. Je vais mettre à jour la réponse
OriginalL'auteur EdChum
Ensemble
as_index = False
pendant groupbyOriginalL'auteur proutray
Vous pouvez également
reset_index()
sur votre groupby résultat à obtenir un dataframe avec le nom de la colonne est maintenant accessible.Si vous effectuez une opération sur une seule colonne, le retour sera une série avec multiindex et vous pouvez simplement appliquer
pd.DataFrame
et puis reset_index.OriginalL'auteur cwharland