tablas - pandas python tutorial español pdf
¿Cómo agrupar una serie por valores en pandas? (4)
Actualmente tengo una Series
pandas con dtype Timestamp
, y quiero agruparla por fecha (y tener muchas filas con diferentes tiempos en cada grupo).
La forma aparentemente obvia de hacer esto sería algo similar a
grouped = s.groupby(lambda x: x.date())
Sin embargo, pandas '' groupby
groups Series por su índice. ¿Cómo puedo agruparlo por valor en su lugar?
Debe convertirlo en un DataFrame, luego agregar una columna que sea la fecha (). Puede hacer groupby en el DataFrame con la columna de fecha.
df = pandas.DataFrame(s, columns=["datetime"])
df["date"] = df["datetime"].apply(lambda x: x.date())
df.groupby("date")
Entonces "fecha" se convierte en su índice. Tienes que hacerlo de esta manera porque el objeto agrupado final necesita un índice para que puedas hacer cosas como seleccionar un grupo .
Para cualquier otra persona que quiera hacer esto en línea sin lanzar un lambda (que tiende a matar el rendimiento):
s.to_frame(0).groupby(0)[0]
Tres métodos:
Marco de datos: pd.groupby([''column'']).size()
Series : sel.groupby(sel).size()
Series a DataFrame:
pd.DataFrame( sel, columns=[''column'']).groupby([''column'']).size()
grouped = s.groupby(s)
O:
grouped = s.groupby(lambda x: s[x])