Vendes de samarretes

Una empresa fabricant de samarretes vol portar el control de les seves vendes utilizant python i la llibreria pandas. Es disposa d’un fitxer en format csv amb informació de les vendes realitzades per l’empresa al llarg d’un període de diversos anys. Per cada venda, es guarda: data, comarca, talla, gènere, nombre d’unitats de la venda i preu unitari. Vegeu un fitxer d’exemple samarretes.csv. Descarregueu el fitxer i creeu un DataFrame de pandas amb les dades. Examineu el nom de les seves columnes i algunes de les seves files. Vegeu per exemple:

>>> import pandas as pd
>>> df = pd.read_csv('samarretes.csv')
>>> df.columns
Index(['Data', 'Comarca', 'Genere', 'Talla', 'Unitats', 'Preu unit.'], dtype='object')
>>> df.head(4)
         Data       Comarca Genere Talla  Unitats  Preu unit.
0  2000-10-10  Pla d'Urgell   home    XS        2        26.8
1  2000-12-04    Alt Urgell   dona     S       10        23.8
2  2000-01-09    Alt Urgell   dona    XL       13        23.9
3  2000-12-24     Baix Camp   dona   XXL        5        22.7

Les funcions que es demanen tot seguit cal desar-les al mòdul samarretes (fitxer samarretes.py).

  1. Dissenyeu la funció vendes_genere_comarca() que, donat DataFrame creat a partir de dades de l’empresa com les de l’exemple, donat un nom de comarca i un gènere ('home' o 'dona') retorna el nombre de vendes (nombre de files del DataFrame) corresponents a la comarca donada i pel gènere donat.

    Per exemple, essent df el dataframe que conté les dades anteriors:

    >>> from samarretes import vendes_genere_comarca
    >>> vendes_genere_comarca(df, 'Urgell', 'dona')
    7
    >>> vendes_genere_comarca(df, 'Garraf', 'home')
    12
    

    Disposeu de jocs de proves al fitxer test-vendes.txt.

  2. Dissenyeu la funció import_vendes() que, donat un DataFrame com el de l’exemple i una talla (string), retorna l’import total de les vendes de samaretes de la talla donada. L’import d’una venda es calcula com el nombre d’unitats multiplicat pel preu unitari.

    Per exemple, essent df el dataframe que conté les dades anteriors:

    >>> from samarretes import import_vendes
    >>> print(round(import_vendes(df, 'XL'), 2))
    53377.9
    >>> print(round(import_vendes(df, 'M'), 2))
    51691.3
    

    Disposeu de jocs de proves al fitxer test-import.txt.

  3. Dissenyeu la funció preu_mig() que, donat DataFrame creat a partir de dades de l’empresa com les de l’exemple, i donada una talla retorna el preu mig de samarretes de la talla donada.

    Per exemple, essent df el dataframe que conté les dades anteriors:

    >>> from samarretes import preu_mig
    >>> print(round(preu_mig(df, 'XS'), 2))
    19.95
    >>> print(round(preu_mig(df[300:], 'XXL'), 2))
    19.99
    

    Disposeu de jocs de proves al fitxer test-preu.txt.

  4. Dissenyeu la funció comarca_fashion() que, donat DataFrame creat a partir de dades de l’empresa com les de l’exemple, retorna el nom de la comarca en la que s’han venut més samarretes (comptant totes les talles i tots els gèneres).

    Per exemple, essent df el dataframe que conté les dades anteriors:

    >>> from samarretes import comarca_fashion
    >>> comarca_fashion(df)
    'Montsià'
    >>> comarca_fashion(df[100:200])
    'Alt Camp'
    

    Disposeu de jocs de proves al fitxer test-fashion.txt.

Solució

Disposeu d’una solució al fitxer samarretes.py.