Iterando el marco de datos de los pandas, verificando valores y creando algunos de ellos

Ok, tengo un marco de datos (grande), algo como esto:

         date       time      value
0     20100201         0         1
1     20100201         6         2
2     20100201        12         3
3     20100201        18         4
4     20100202         0         5
5     20100202         6         6
6     20100202        12         7
7     20100202        18         8
8     20100203         0         9
9     20100203        18        11
10    20100204         6        12
...
8845  20160101        18      8846  

Como puede ver, el marco de datos tiene una columnadate, una columnatime con cuatro horas por día (00, 06, 12, 18) y una columnavalue.

El problema es que faltan fechas en el marco de datos, en el ejemplo anterior debería haber dos filas adicionales entre las filas 8 y 9, correspondientes a las horas6 y12 del día20100203, y también una fila adicional entre las filas 9 y 10 correspondientes a la hora0 del día20100204.

¿Qué necesitaría? Me gustaría repetir eldate columna del marco de datos, comprobando que todos los días existen y que no falta nadie, y también que para cada día hay cuatro horas (00, 06, 12, 18). En caso de que falte algo durante la iteración, debe agregarse enexactamente ese lugar, con los desaparecidosdate ytime yNaN como un valor Para no volver a copiar todo el marco de datos, permítanme poner los aspectos relevantes que deberían aparecer en una versión final:

...
7     20100202        18         8
8     20100203         0         9
9     20100203         6       NaN
10    20100203        12       NaN   
11    20100203        18        11
12    20100204         0       NaN
13    20100204         6        12
...

En caso de que esté interesado, se le pidió una versión más fácil de este problema aquíAritmética modular en python para iterar un marco de datos de pandas y amablemente respondido por los usuarios @Alexander y @piRSquared. La versión que se pregunta aquí es más difícil e implica (supongo) el uso de datetime y timedelta e iterar más columnas.

Perdón por la larga publicación y muchas gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta