Pandas: Création d'agrégé de colonne dans DataFrame
Avec le DataFrame ci-dessous à titre d'exemple,
In [83]:
df = pd.DataFrame({'A':[1,1,2,2],'B':[1,2,1,2],'values':np.arange(10,30,5)})
df
Out[83]:
A B values
0 1 1 10
1 1 2 15
2 2 1 20
3 2 2 25
Ce serait un moyen simple de générer une nouvelle colonne contenant un certain niveau d'agrégation des données sur l'une des colonnes?
Par exemple, si je somme values
- dessus des éléments dans A
In [84]:
df.groupby('A').sum()['values']
Out[84]:
A
1 25
2 45
Name: values
Comment puis-je obtenir
A B values sum_values_A
0 1 1 10 25
1 1 2 15 25
2 2 1 20 45
3 2 2 25 45
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé un moyen à l'aide de
join
:Quelqu'un a un moyen plus simple de le faire?
Ce n'est pas si direct, mais je l'ai trouvé très intuitif (l'utilisation de la carte pour créer de nouvelles colonnes à partir d'une autre colonne) et peut être appliqué à de nombreux autres cas: