Mis datos pueden tener múltiples eventos en una fecha determinada o NO eventos en una fecha. Tomo estos eventos, obtengo un recuento por fecha y los trazo. Sin embargo, cuando los trazo, mis dos series no siempre coinciden.
idx = pd.date_range(df['simpleDate'].min(), df['simpleDate'].max())
s = df.groupby(['simpleDate']).size()
En el código anterior, idx se convierte en un rango de digamos 30 fechas. 01/09/2013 a 30/09/2013 Sin embargo, S solo puede tener 25 o 26 días porque no sucedieron eventos en una fecha determinada. Luego obtengo un AssertionError ya que los tamaños no coinciden cuando intento trazar:
fig, ax = plt.subplots()
ax.bar(idx.to_pydatetime(), s, color='green')
¿Cuál es la forma correcta de abordar esto? ¿Quiero eliminar fechas sin valores de IDX o (lo que prefiero hacer) es agregar a la serie la fecha que falta con un recuento de 0. Prefiero tener un gráfico completo de 30 días con 0 valores. Si este enfoque es correcto, ¿alguna sugerencia sobre cómo comenzar? ¿Necesito algún tipo de dinámicareindex
función ?
Aquí hay un fragmento de S ( df.groupby(['simpleDate']).size()
), no hay entradas para 04 y 05.
09-02-2013 2
09-03-2013 10
09-06-2013 5
09-07-2013 1
reindex
Es una función asombrosa. Puede (1) reordenar los datos existentes para que coincidan con un nuevo conjunto de etiquetas, (2) insertar nuevas filas donde no existía ninguna etiqueta previamente, (3) completar los datos de las etiquetas que faltan, (incluyendo el llenado hacia adelante / hacia atrás) (4) seleccionar filas por etiqueta!