print(df.groupby('year')('lifeExp').mean())
year
1952 49.057620
1957 51.507401
1962 53.609249
1967 55.678290
1972 57.647386
1977 59.570157
1982 61.533197
1987 63.212613
1992 64.160338
1997 65.014676
2002 65.694923
2007 67.007423

Cela nous donne l’espérance de vie moyenne de toutes les populations, par année. Nous pourrions effectuer les mêmes types de calculs pour la population et le PIB par année :


print(df.groupby('year')('pop').mean())
print(df.groupby('year')('gdpPercap').mean())

Jusqu’ici, tout va bien. Mais que se passe-t-il si nous souhaitons regrouper nos données sur plusieurs colonnes ? Nous pouvons le faire en passant des colonnes dans des listes :


print(df.groupby(('year', 'continent'))
  (('lifeExp', 'gdpPercap')).mean())
                  lifeExp     gdpPercap
year continent
1952 Africa     39.135500   1252.572466
     Americas   53.279840   4079.062552
     Asia       46.314394   5195.484004
     Europe     64.408500   5661.057435
     Oceania    69.255000  10298.085650
1957 Africa     41.266346   1385.236062
     Americas   55.960280   4616.043733
     Asia       49.318544   5787.732940
     Europe     66.703067   6963.012816
     Oceania    70.295000  11598.522455
1962 Africa     43.319442   1598.078825
     Americas   58.398760   4901.541870
     Asia       51.563223   5729.369625
     Europe     68.539233   8365.486814
     Oceania    71.085000  12696.452430

Ce .groupby() L’opération prend nos données et les regroupe d’abord par année, puis par continent. Ensuite, il génère des valeurs moyennes à partir des colonnes espérance de vie et PIB. De cette façon, vous pouvez créer des groupes dans vos données et classer la manière dont elles doivent être présentées et calculées.

Si vous souhaitez « aplatir » les résultats dans un seul cadre indexé de manière incrémentielle, vous pouvez utiliser l’option .reset_index() méthode sur les résultats :


gb = df.groupby(('year', 'continent'))
(('lifeExp', 'gdpPercap')).mean()
flat = gb.reset_index() 
print(flat.head())
|     year  continent  lifeExp    gdpPercap
| 0   1952  Africa     39.135500   1252.572466
| 1   1952  Americas   53.279840   4079.062552
| 2   1952  Asia       46.314394   5195.484004
| 3   1952  Europe     64.408500   5661.057435
| 4   1952  Oceana     69.255000  10298.085650

Nombre de fréquences groupées

Une autre chose que nous faisons souvent avec les données est de calculer fréquences. Le nunique et value_counts les méthodes peuvent être utilisées pour obtenir des valeurs uniques dans une série et leurs fréquences. Par exemple, voici comment savoir combien de pays nous avons sur chaque continent :


print(df.groupby('continent')('country').nunique()) 
continent
Africa    52
Americas  25
Asia      33
Europe    30
Oceana     2

Traçage de base avec Pandas et Matplotlib

La plupart du temps, lorsque vous souhaitez visualiser des données, vous utiliserez une autre bibliothèque telle que Matplotlib pour générer ces graphiques. Cependant, vous pouvez utiliser Matplotlib directement (avec d’autres bibliothèques de traçage) pour générer des visualisations à partir de Pandas.

Pour utiliser la simple extension Matplotlib pour Pandas, assurez-vous d’abord d’avoir installé Matplotlib avec pip install matplotlib.

Examinons maintenant à nouveau l’espérance de vie annuelle de la population mondiale :


global_yearly_life_expectancy = df.groupby('year')('lifeExp').mean() 
print(global_yearly_life_expectancy) 
| year
| 1952  49.057620
| 1957  51.507401
| 1962  53.609249
| 1967  55.678290
| 1972  57.647386
| 1977  59.570157
| 1982  61.533197
| 1987  63.212613
| 1992  64.160338
| 1997  65.014676
| 2002  65.694923
| 2007  67.007423
| Name: lifeExp, dtype: float64

Pour créer un tracé de base à partir de ceci, utilisez :


import matplotlib.pyplot as plt
global_yearly_life_expectancy = df.groupby('year')('lifeExp').mean() 
c = global_yearly_life_expectancy.plot().get_figure()
plt.savefig("output.png")

Le tracé sera enregistré dans un fichier dans le répertoire de travail actuel sous le nom output.png. Les axes et autres marquages ​​sur le tracé peuvent tous être définis manuellement, mais pour des exportations rapides, cette méthode fonctionne très bien.

Conclusion

Python et Pandas offrent de nombreuses fonctionnalités que vous ne pouvez pas obtenir à partir des feuilles de calcul. D’une part, ils vous permettent d’automatiser votre travail avec des données et de rendre les résultats reproductibles. Plutôt que d’écrire des macros de feuille de calcul, qui sont lourdes et limitées, vous pouvez utiliser Pandas pour analyser, segmenter et transformer des données, et utiliser la puissance expressive et l’écosystème de packages de Python (par exemple, pour représenter graphiquement ou restituer des données dans d’autres formats) pour faire encore plus que ce que vous pourriez faire avec Pandas seul.

A lire également