============================== Operacions avançades en pandas ============================== Lectura d'un fitxer en format CSV --------------------------------- Pandas és capaç de llegir diversos formats: CSV, excel, sql, json ... * CSV = *Comma Separated Values*, és a dir, un fitxer **de text** separat per comes (o un altre caràcter) * Per examinar el contingut exacte d'un fitxer CSV es pot editar amb qualsevol editor de text planer (l'editor d'idle, emacs, ...) * En llegir un fitxer, es pot indicar el nom o bé una URL * :py:func:`pandas.read_csv` admet **molts** paràmetres opcionals .. literalinclude:: pandas2.txt :language: pycon :end-before: --ini-nuls Treballar amb valors nuls (*missing data*) ------------------------------------------ * Podem assignar-los posant :py:const:`pd.NA`, :py:const:`None` o :py:const:`np.nan` a una o més cel·les * Els mètodes i funcions de Pandas saben operar encara que hi hagi valors nuls * Vegeu també https://pandas.pydata.org/docs/user_guide/missing_data.html .. literalinclude:: pandas2.txt :language: pycon :start-after: --ini-nuls :end-before: --ini-vects Operacions vectorials --------------------- Pandas suporta les operacions vectorials, és a dir, operar amb tota una columna (o fila) **element a element** (multiplicar un valor a tota una columna, sumar dues columnes o files, etc). .. literalinclude:: pandas2.txt :language: pycon :start-after: --ini-vects :end-before: --ini-misc Altres mètodes: idxmax, replace, apply, ... ------------------------------------------- .. literalinclude:: pandas2.txt :language: pycon :start-after: --ini-misc :end-before: --ini-groupby Treballar amb dades agrupades ----------------------------- .. figure:: groupby.svg :width: 800px * Cal fer servir el mètode :py:meth:`~pandas.DataFrame.groupby`, que retorna un un :py:class:`~pandas.DataFrameGroupBy` (un iterable de :py:class:`~pandas.DataFrame`). No es pot examinar directament. * Les funcions de resum i selecció es poden aplicar a tot un grup. S'aplica la funció **a cada** DataFrame del grup. El resultat és una :py:class:`~pandas.Series` indexada segons els valors de cada grup, excepte que si la funció aplicada retorna una :py:class:`~pandas.Series`, que serà un :py:class:`~pandas.DataFrame`. .. literalinclude:: pandas2.txt :language: pycon :start-after: --ini-groupby