¿Existe un método fácil en pandas para invocar groupby
en un rango de incrementos de valores? Por ejemplo, dado el siguiente ejemplo, ¿puedo agrupar y agrupar la columna B
con un 0.155
incremento de modo que, por ejemplo, el primer par de grupos en la columna B
se divida en rangos entre '0 - 0,155, 0,155 - 0,31 ...'
import numpy as np
import pandas as pd
df=pd.DataFrame({'A':np.random.random(20),'B':np.random.random(20)})
A B
0 0.383493 0.250785
1 0.572949 0.139555
2 0.652391 0.401983
3 0.214145 0.696935
4 0.848551 0.516692
Alternativamente, ¿podría primero categorizar los datos por esos incrementos en una nueva columna y luego usarlos groupby
para determinar cualquier estadística relevante que pueda ser aplicable en la columna A
?
Prueba esto:
df = df.sort('B') bins = np.arange(0,1.0,0.155) ind = np.digitize(df['B'],bins) print df.groupby(ind).head()
Por supuesto, puede usar cualquier función en los grupos, no solo
head
.fuente