.. _pandasgroupbyrst: ================= Pandas et groupby ================= .. only:: html **Links:** :download:`notebook `, :downloadlink:`html `, :download:`PDF `, :download:`python `, :downloadlink:`slides `, :githublink:`GitHub|_doc/notebooks/pandas/pandas_groupby.ipynb|*` Petit tour de passe passe autour d’un `groupby `__ et des valeurs manquantes qui ne sont plus prises en compte depuis les dernières versions. .. code:: ipython3 from jyquickhelper import add_notebook_menu add_notebook_menu() .. contents:: :local: groupby et valeur manquantes ---------------------------- .. code:: ipython3 import pandas data = [{"a":1, "b":2}, {"a":10, "b":20}, {"b":3}, {"b":4}] df = pandas.DataFrame(data) df .. raw:: html
a b
0 1.0 2
1 10.0 20
2 NaN 3
3 NaN 4
.. code:: ipython3 df.groupby("a").sum() .. raw:: html
b
a
1.0 2
10.0 20
Les valeurs manquantes ont disparu et c’est le comportement attendu d’après `groupby and missing values `__. Il est possible de ocrriger le tir avec la fonction implémenté dans ce module. .. code:: ipython3 from pandas_streaming.df import pandas_groupby_nan pandas_groupby_nan(df, "a").sum() .. raw:: html
a b
0 1.0 2
1 10.0 20
2 NaN 7
L’astuce consiste à remplacer les valeurs manquantes par d’autres non utilisées dans le dataframe, à grouper, puis à leur redonner leur valeurs initiales. Le code de la fonction n’est pas très propre car il modifie des variables que l’utilisateur n’est pas censé modifier. Il est possible que la fonction “casse” pour des versions ultérieures. Le `code `__ utilise quelques variables non documentation du module `pandas `__.