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

689
Vistas
Python y Pandas: agrupa por día y cuenta cada día

Soy nuevo en pandas y por ahora no entiendo cómo organizar mi serie de tiempo, échale un vistazo:

 date & time of connection 19/06/2017 12:39 19/06/2017 12:40 19/06/2017 13:11 20/06/2017 12:02 20/06/2017 12:04 21/06/2017 09:32 21/06/2017 18:23 21/06/2017 18:51 21/06/2017 19:08 21/06/2017 19:50 22/06/2017 13:22 22/06/2017 13:41 22/06/2017 18:01 23/06/2017 16:18 23/06/2017 17:00 23/06/2017 19:25 23/06/2017 20:58 23/06/2017 21:03 23/06/2017 21:05

Esta es una muestra de un conjunto de datos de 130 k raws, probé: df.groupby('date & time of connection')['date & time of connection'].apply(list)

Supongo que no es suficiente

Creo que debería :

  • Cree un diccionario con índice de dd/mm/yyyy a dd/mm/yyyy
  • Convertir "fecha y hora de conexión" tipo dateTime to Date
  • Agrupar y contar Fecha de "fecha y hora de conexión"
  • ¿Poner los números que cuento dentro del diccionario?

¿Qué opinas de mi lógica? ¿Conoces algunos tutoriales? Muchísimas gracias

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Puede usar dt.floor para convertir a date s y luego value_counts o groupby con size :

 df = (pd.to_datetime(df['date & time of connection']) .dt.floor('d') .value_counts() .rename_axis('date') .reset_index(name='count')) print (df) date count 0 2017-06-23 6 1 2017-06-21 5 2 2017-06-19 3 3 2017-06-22 3 4 2017-06-20 2

O:

 s = pd.to_datetime(df['date & time of connection']) df = s.groupby(s.dt.floor('d')).size().reset_index(name='count') print (df) date & time of connection count 0 2017-06-19 3 1 2017-06-20 2 2 2017-06-21 5 3 2017-06-22 3 4 2017-06-23 6

Horarios :

 np.random.seed(1542) N = 220000 a = np.unique(np.random.randint(N, size=int(N/2))) df = pd.DataFrame(pd.date_range('2000-01-01', freq='37T', periods=N)).drop(a) df.columns = ['date & time of connection'] df['date & time of connection'] = df['date & time of connection'].dt.strftime('%d/%m/%Y %H:%M:%S') print (df.head()) In [193]: %%timeit ...: df['date & time of connection']=pd.to_datetime(df['date & time of connection']) ...: df1 = df.groupby(by=df['date & time of connection'].dt.date).count() ...: 539 ms ± 45.9 ms per loop (mean ± std. dev. of 7 runs, 1 loop each) In [194]: %%timeit ...: df1 = (pd.to_datetime(df['date & time of connection']) ...: .dt.floor('d') ...: .value_counts() ...: .rename_axis('date') ...: .reset_index(name='count')) ...: 12.4 ms ± 350 µs per loop (mean ± std. dev. of 7 runs, 100 loops each) In [195]: %%timeit ...: s = pd.to_datetime(df['date & time of connection']) ...: df2 = s.groupby(s.dt.floor('d')).size().reset_index(name='count') ...: 17.7 ms ± 140 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
over 4 years ago · Santiago Trujillo Denunciar

0

Para asegurarse de que sus columnas estén en formato de fecha.

 df['date & time of connection']=pd.to_datetime(df['date & time of connection'])

Luego puedes agrupar los datos por fecha y hacer un conteo:

 df.groupby(by=df['date & time of connection'].dt.date).count() Out[10]: date & time of connection date & time of connection 2017-06-19 3 2017-06-20 2 2017-06-21 5 2017-06-22 3 2017-06-23 6
over 4 years ago · Santiago Trujillo Denunciar

0

Oye, encontré una manera fácil de hacer esto con remuestreo.

 # Set the date column as index column. df = df.set_index('your_date_column') # Make counts df_counts = df.your_date_column.resample('D').count()

Aunque el nombre de su columna es largo y contiene espacios, lo que me da un poco de vergüenza. Usaría guiones en lugar de espacios.

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