/ / Python Pandas - Transferencia del índice como el nombre del grupo / índice para un grupo por dataframe producido - python, pandas, pandas-groupby

Python Pandas - Llevar el índice como el nombre / índice del grupo para un grupo por marco de datos producido - python, pandas, pandas-groupby

He utilizado groupby en pandas, sin embargo la etiquetapara los grupos es simplemente un valor arbitrario, mientras que me gustaría que esta etiqueta fuera el índice del marco de datos original (que es fecha y hora) para poder crear un nuevo marco de datos que pueda trazar en términos de fecha y hora.

    grouped_data = df.groupby(
["X",df.X.ne(df.X.shift()).cumsum().rename("grp")])

grouped_data2 = grouped_data["Y"].agg(np.trapz).loc[2.0:4.0]

La columna x tiene valores cambiantes de 1-4 y ella segunda línea de código está destinada a integrar la columna Y en los grupos donde X es 2 o 3. Estas son unidades que se repiten, así que no quiero que todos los 2 y todos los 3 estén integrados, quiero el período de tiempo donde va: 22222333333 como un grupo y luego aplique np.trapz de nuevo al siguiente grupo al que va: 2222233333. De esa manera, debería tener un nuevo marco de datos con un índice correspondiente al inicio de estos períodos de tiempo y valores que son una parte integral de estos períodos.

Respuestas

0 para la respuesta № 1

Si comprendo correctamente, ¿ya has establecido tu índice en los valores de DateTime? Si es así, prueba la función de agrupador:

df.groupby(pd.Grouper(key={index name}, freq={appropriate offset alias}))

Sin un conjunto de datos de muestra, no puedo proporcionar una solución completa, pero esto debería resolver su problema de indexación :)

Tutorial de función de mero

Offset alias