Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

147
Vistas
¿Cómo filtro las filas que vienen antes de la fila que contiene cierto valor para cada grupo en el marco de datos?

¿Cómo obtengo solo las filas que vienen después del 'clic' en la columna 'action_type' para cada client_id los datos del juguete?

 df = pd.DataFrame({ 'user_client_id': [1,1, 1, 1, 1,1, 1,1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2], 'timestamp':['2021-12-18 09:15:59', '2021-12-18 10:33:49', '2021-12-18 10:34:08', '2021-12-18 10:34:09', '2021-12-18 10:57:02','2021-12-18 10:57:33','2021-12-18 10:58:01','2021-12-18 10:58:02','2021-12-18 10:58:17', '2021-12-18 10:58:29','2021-12-18 10:58:31','2021-12-18 10:58:34', '2021-12-18 10:58:34','2021-12-18 10:58:47', '2021-12-18 10:59:12', '2021-12-18 10:59:28','2021-12-18 10:59:35','2021-12-18 10:59:38','2021-12-18 11:05:13', '2021-12-18 11:05:58','2021-12-18 11:06:08','2021-12-18 11:06:10','2021-12-18 11:06:12','2021-12-18 11:07:42', '2021-12-18 11:10:07','2021-12-18 11:10:23', '2021-12-18 11:10:53', '2021-12-18 11:10:58', '2021-12-18 11:13:04', '2021-12-18 11:13:06', '2021-12-18 14:56:32','2021-12-18 17:16:40'], 'action_type ': ['to_cart','to_cart','to_cart','to_cart','click', 'to_cart', 'to_cart', 'increment', 'remove', 'to_cart', 'increment', 'click', 'to_cart', 'increment', 'to_cart', 'to_cart', 'remove', 'to_cart', 'increment', 'to_cart', 'to_cart', 'click', 'increment', 'to_cart', 'to_cart', 'to_cart', 'click', 'increment', 'to_cart', 'increment', 'to_cart', 'increment'] })

Para el cliente con ID 1, todo lo que viene antes del clic en 2021-12-18 10:57:02 debe filtrarse para el cliente con ID 2, todo lo que viene antes del clic en 2021-12-18 11:06:10 debe ser filtrado

Lo he intentado de esta manera, pero solo funciona para el cliente 1, pero no funciona para el cliente 2

 df.iloc[df.loc[df['action_type']=='click'].index[0]:,:]
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Cada vez que dice "por cliente", es una buena señal de que necesita un groupby . En cuanto a filtrar las filas antes del primer clic, puede contar el número acumulado de clics y luego obtener solo las filas donde los clics > 0:

 def filter(group): click = group['action_type'].eq('click').cumsum() return group[click > 0] df.groupby('user_client_id').apply(filter).reset_index(level=0, drop=True)
over 4 years ago · Santiago Trujillo Denunciar

0

Puede usar una máscara con groupby y cummax . Esto establecerá todos los valores por grupo en Verdadero después del primer "clic"

 m = (df['action_type'].eq('click') .groupby(df['user_client_id']) .cummax() ) df[m]

Producción:

 user_client_id timestamp action_type 4 1 2021-12-18 10:57:02 click 5 1 2021-12-18 10:57:33 to_cart 6 1 2021-12-18 10:58:01 to_cart 7 1 2021-12-18 10:58:02 increment 8 1 2021-12-18 10:58:17 remove 9 1 2021-12-18 10:58:29 to_cart 10 1 2021-12-18 10:58:31 increment 11 1 2021-12-18 10:58:34 click 12 1 2021-12-18 10:58:34 to_cart 13 1 2021-12-18 10:58:47 increment 14 1 2021-12-18 10:59:12 to_cart 21 2 2021-12-18 11:06:10 click 22 2 2021-12-18 11:06:12 increment 23 2 2021-12-18 11:07:42 to_cart 24 2 2021-12-18 11:10:07 to_cart 25 2 2021-12-18 11:10:23 to_cart 26 2 2021-12-18 11:10:53 click 27 2 2021-12-18 11:10:58 increment 28 2 2021-12-18 11:13:04 to_cart 29 2 2021-12-18 11:13:06 increment 30 2 2021-12-18 14:56:32 to_cart 31 2 2021-12-18 17:16:40 increment
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda