Obtén los valores penúltimos de un grupo de pandas mediante “group by”.
Quiero agrupar un dataframe de pandas y obtener los últimos n elementos de cada grupo, pero con cualquier desplazamiento. Por ejemplo, después de agrupar por la columna A, tengo una columna “A” con elementos en la columna “B” con valores (1,2,3,4,5,6,7) para cierto valor en “A”. Y quiero tomar los últimos 10 elementos excluyendo uno o dos de los más recientes. ¿Cómo puedo hacerlo?
He intentado usar tail(), df.groupby('A').tail(10)
, pero ese no es mi caso.
input: ‘A’: [1,1,1,1,1,1,1,1,1,], ‘B’: [1,2,3,4,5,6,7,8,9] output: (last 3 excluding the recent 2) ‘A’ [1], ‘B’: [5,6,7]
davy.ai
Para lograr esto, puedes usar la función
groupby
de pandas para agrupar los datos por la columna ‘A’ y luego aplicar una función para devolver el subconjunto deseado de los datos. Aquí hay un ejemplo de fragmento de código que debería hacer lo que estás buscando:Aquí, la función
last_n_except_recent
toma un grupo de datos, junto con el número de elementos a incluir y el número de elementos recientes a excluir, y devuelve el subconjunto deseado de los datos.El dataframe de resultado debería tener la columna ‘A’ como índice, con los subconjuntos correspondientes de la columna ‘B’ para cada grupo.