Iterando o dataframe dos pandas, verificando valores e criando alguns deles
Ok, eu tenho um (grande) dataframe, algo como isto:
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 você pode ver, o quadro de dados tem uma colunadate
, uma colunatime
com quatro horas por dia (00, 06, 12, 18) e uma colunavalue
.
O problema é que faltam datas no quadro de dados; no exemplo acima, deve haver duas linhas extras entre as linhas 8 e 9, correspondentes às horas6
e12
do dia20100203
e também uma linha extra entre as linhas 9 e 10 correspondentes à hora0
do dia20100204
.
Do que eu precisaria? Eu gostaria de iterar odate
coluna do quadro de dados, verificando se existe todos os dias e que não falta ninguém, e também que há todos os dias as quatro horas (00, 06, 12, 18). Caso algo esteja faltando durante a iteração, deve ser adicionadoexatamente naquele lugar, com os desaparecidosdate
etime
eNaN
como um valor. Para não copiar todo o dataframe novamente, deixe-me colocar os aspectos relevantes que devem aparecer em uma versão 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
...
Caso você esteja interessado, uma versão mais fácil desse problema foi solicitada aquiAritmética modular em python para iterar um dataframe de pandas e gentilmente respondido pelos usuários @Alexander e @piRSquared. A versão solicitada aqui é mais difícil, envolvendo (suponho) o uso de datetime e timedelta e iterando mais colunas.
Desculpe pelo longo post e muito obrigado.