filas de agarre con fecha máxima de trama de datos pandas

votos
3

Tengo una trama de datos pandas que tiene este aspecto:

introducir

y quiero agarrar para cada ID distinto, la fila con la fecha máxima para que mis resultados finales se ve algo como esto:

introducir

Mi columna de fecha es del tipo de datos 'objeto'. He tratado de agrupar y luego tratar de agarrar el máximo como el siguiente:

idx = df.groupby(['ID','Item'])['date'].transform(max) == df_Trans['date']
df_new = df[idx]

Sin embargo no estoy en condiciones de obtener el resultado deseado. Cualquier ayuda en este tema sería muy apreciada!

Publicado el 07/11/2018 a las 22:47
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
3

idxmax

En caso de trabajar tanto tiempo como indexes único o el índice máximo no se repite.

df.loc[df.groupby('ID').date.idxmax()]

OP (editado)

En caso de trabajar, siempre y cuando los valores máximos son únicos. De lo contrario, obtendrá todas las filas igual al máximo.

df[df.groupby('ID')['date'].transform('max') == df['date']]

WB ir a la solución

Y también muy buena solución.

df.sort_values(['ID', 'date']).drop_duplicates('date', keep='last')
Respondida el 07/11/2018 a las 22:49
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more