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.