Análisis de cesta de la compra en Python
Isaiah Hull
Visiting Associate Professor of Finance, BI Norwegian Business School
import pandas as pd
# Carga datos de regalos.
gifts = pd.read_csv('datasets/novelty_gifts.csv')
# Vista previa con head().
print(gifts.head())
InvoiceNo Description
0 562583 IVORY STRING CURTAIN WITH POLE
1 562583 PINK AND BLACK STRING CURTAIN
2 562583 PSYCHEDELIC TILE HOOK
3 562583 ENAMEL COLANDER CREAM
4 562583 SMALL FOLDING SCISSOR(POINTED EDGE)
# Imprime el número de transacciones.
print(len(gifts['InvoiceNo'].unique()))
9709
# Imprime el número de ítems.
print(len(gifts['Description'].unique()))
3461
Poda

Agregación

# Carga datos one-hot
onehot = pd.read_csv('datasets/online_retail_onehot.csv')
# Vista previa del DataFrame
print(onehot.head(2))
50'S CHRISTMAS GIFT BAG LARGE DOLLY GIRL BEAKER ... ZINC WILLIE WINKIE CANDLE STICK
0 False False False
1 False False True
# Selecciona los nombres de columna para bolsas y cajas
bag_headers = [i for i in onehot.columns if i.lower().find('bag')>=0]
box_headers = [i for i in onehot.columns if i.lower().find('box')>=0]
# Identifica los encabezados de columna
bags = onehot[bag_headers]
boxes = onehot[box_headers]
print(bags)
50'S CHRISTMAS GIFT BAG LARGE RED SPOT GIFT BAG LARGE
0 False False
1 False False
... ... ...
# Sumar por columnas
bags = (bags.sum(axis=1) > 0.0).values
boxes = (boxes.sum(axis=1) > 0.0).values
print(bags)
[False True False ... False True False]
# Añadir resultados al DataFrame
aggregated = pd.DataFrame(np.vstack([bags, boxes]).T, columns = ['bags', 'boxes'])
print(aggregated.head())
bags boxes
0 False False
1 True False
2 False False
3 False False
4 True False
# Calcular soporte
print(aggregated.mean())
bags 0.130075
boxes 0.071429
Análisis de cesta de la compra en Python