Función Groupby() de pandas en Python
Estoy buscando utilizar los valores de un dataframe generado a través de Groupby()
. El comando que escribí fue:
pitcher_avg = total_data.groupby(['PitcherID','PitchType'])['ReleaseSpeed'].mean()
La salida de pitcher_avg
fue:
PitcherID PitchType
80027 CF 86.022476
CH 80.846935
FB 89.614138
SI 86.953833
SL 80.533818
Mi siguiente paso es tomar los valores de la columna de la derecha y fusionarlos en un nuevo dataframe bajo la condición de que el PitcherID coincida con el PitcherID del nuevo dataframe. Por ejemplo:
GameDate PitcherID ... CF CH
0 2018-03-29 80027 ... 86.022476 80.846935
1 2018-03-29 80027 ... 86.022476 80.846935
2 2018-03-29 80027 ... 86.022476 80.846935
3 2018-03-29 80027 ... 86.022476 80.846935
4 2018-03-29 80027 ... 86.022476 80.846935
¿Es esto posible? He estado intentando con los comandos np.where
y pd.merge
, pero hasta ahora nada ha funcionado. ¡Gracias!
davy.ai
Sí, es posible combinar la salida de
Groupby()
en un nuevo dataframe basado en el PitcherID. Una solución es utilizarpivot_table()
para remodelar la salida depitcher_avg
en un nuevo dataframe con el PitcherID como índice y el PitchType como columnas.Esto creará un nuevo dataframe con los valores de PitchType como encabezados de columna y la velocidad media de lanzamiento para cada combinación de PitcherID y PitchType como valores en las celdas.
Luego, puedes combinar este nuevo dataframe con el dataframe original utilizando
merge()
en la columna PitcherID:Esto creará un nuevo dataframe con las mismas columnas de GameDate y PitcherID que el dataframe original, y las columnas de PitchType y los valores de velocidad media de lanzamiento del dataframe pitcher_avg.