in

Procesamiento previo de datos con Python Pandas – Part 5 Binning

1FO9LTS

Procesamiento previo de datos con Python Pandas – Part 5 Binning

Angélica Lo Duca

23 de diciembre de 2020·6 min de lectura

1*FO9LTS
Imagen de Çetin Aydın en Pixabay

Importación de datos

import pandas as pd
df = pd.read_csv('cupcake.csv')
df.head(5)
1*X 2JZHsAGywTyr4jXlovrg

Imagen del autor

Binning por distancia

min_value = df['Cupcake'].min()
max_value = df['Cupcake'].max()
print(min_value)
print(max_value)
4
100
import numpy as np
bins = np.linspace(min_value,max_value,4)
bins
array([  4.,  36.,  68., 100.])
labels = ['small', 'medium', 'big']
df['bins'] = pd.cut(df['Cupcake'], bins=bins, labels=labels, include_lowest=True)
import matplotlib.pyplot as pltplt.hist(df['bins'], bins=3)
1*1nrklvzWloUWJAohid5TOw

Imagen del autor
bins = [ 0, 10, 50, 100 ]
df['bin_cut_manual'] = pd.cut(df['Cupcake'] , bins=bins, labels=labels, include_lowest=True)
plt.hist(df['bin_cut_manual'], bins=3)
plt.show()
1*9k8ymR 06ng59YNRzCXo g

Imagen del autor

Agrupación por frecuencia

df['bin_qcut'] = pd.qcut(df['Cupcake'], q=3, precision=1, labels=labels)

Muestreo

from scipy.stats import binned_statistic
x_data = np.arange(0, len(df))
y_data = df['Cupcake']
x_bins,bin_edges, misc = binned_statistic(y_data,x_data, statistic="median", bins=2)
bin_intervals = pd.IntervalIndex.from_arrays(bin_edges[:-1], bin_edges[1:])
def set_to_median(x, bin_intervals):
for interval in bin_intervals:
if x in interval:
return interval.mid
df['sampled_cupcake'] = df['Cupcake'].apply(lambda x: set_to_median(x, bin_intervals))
plt.plot(df['Cupcake'], label='original')
plt.plot(df['sampled_cupcake'], color='red', label='sampled')
plt.legend()
plt.show()
1*bI nA54yXZSVLo9IO7tFbQ

Imagen del autor
y_bins = (bin_edges[:-1]+bin_edges[1:])/2
y_bins
plt.plot(x_data,y_data)
plt.xlabel("X");
plt.ylabel("Y")
plt.scatter(x_bins, y_bins, color= 'red',linewidth=5)
plt.show()
1*gysDKDrUZsv8vA6TS3fedg

Imagen del autor

Calcule las rupturas naturales en los datos

import jenkspy
breaks = jenkspy.jenks_breaks(df['Cupcake'], nb_class=3)
df['bin_cut_break'] = pd.cut(df['Cupcake'] , bins=breaks, labels=labels, include_lowest=True)
plt.hist(df['bin_cut_break'], bins=3)
plt.show()

Imagen del autor

Resumen

Bibliografía

Última actualización

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

URAsedsa6EgsYRNdLnZ2aJ 1200 80

Las mejores ofertas de portátiles para juegos baratos de menos de $ 1,000 para septiembre de 2021

oraclecompra Grapeshot