0
Suppose Ensuite, nous avons dataframe:Pandas groupe par convertir différentes lignes à une ligne avec tableau de valeurs
df = pd.DataFrame({'animal': 'cat dog cat fish dog cat cat'.split(),
'size': list('SSMMMLL'),
'weight': [8, 10, 11, 1, 20, 12, 12],
'adult' : [False] * 5 + [True] * 2})
adult animal size weight
0 False cat S 8
1 False dog S 10
2 False cat M 11
3 False fish M 1
4 False dog M 20
5 True cat L 12
6 True cat L 12
Et je veux le convertir en la forme suivante (denormalise il) par des poids:
weights
animal
cat [8, 11, 12, 12]
dog [10, 20]
fish [1]
Actuellement, j'utilise le code suivant:
df.groupby('animal',as_index=True).apply(lambda sf : pd.Series([list(sf['weight'])]
,index=['weights']))
mais je me demande s'il existe une façon claire de le faire
Merci pour la réponse, même si je veux aussi que la deuxième colonne ait un poids de "nom". –
Voir ma modification afin de récupérer un DataFrame. – mgc
Upvoted votre réponse, Merci –