Boa tarde. Como fariamos para preencher uma coluna com o valor da anterior acrescido de 1?
Exemplo:
Coluna sem preencher
1
2
nan
nan
5
6
nan
7
nan
nan
nan
11Para isto:
Coluna
1
2
3
4
5
6
7
8
9
10
11Grato pelo auxilio.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Boa tarde. Como fariamos para preencher uma coluna com o valor da anterior acrescido de 1?
Exemplo:
Coluna sem preencher
1
2
nan
nan
5
6
nan
7
nan
nan
nan
11Para isto:
Coluna
1
2
3
4
5
6
7
8
9
10
11Grato pelo auxilio.
Oi, Vitor! Tudo bem com você?
Eu criei um DataFrame com base no exemplo que você enviou
import pandas as pd
from numpy import nan
df = pd.DataFrame({'Coluna': [1,2,nan,nan,5,6,7,nan,nan,nan,11]})
df| Coluna | |
|---|---|
| 0 | 1 |
| 1 | 2 |
| 2 | nan |
| 3 | nan |
| 4 | 5 |
| 5 | 6 |
| 6 | 7 |
| 7 | nan |
| 8 | nan |
| 9 | nan |
| 10 | 11 |
Para ajustar os valores da coluna com valores incrementados, podemos utilizar a função range do python, especificando, o primeiro parâmetro como o primeiro valor da coluna do DataFrame, e o segundo parâmetro como o tamanho das linhas + 1:
df['Coluna'] = range(int(df['Coluna'][0]), len(df['Coluna'])+1)
dfTemos o seguinte retorno:
| Coluna | |
|---|---|
| 0 | 1 |
| 1 | 2 |
| 2 | 3 |
| 3 | 4 |
| 4 | 5 |
| 5 | 6 |
| 6 | 7 |
| 7 | 8 |
| 8 | 9 |
| 9 | 10 |
| 10 | 11 |
Espero ter te ajudado. Bons estudos!
Obrigado pelo auxilio, Mirla. Acabei solucionando utilizando o seguinte código, pois as vezes pula alguns valores:
df['Coluna'] = df['Coluna'].isna().cumsum().add(df['Coluna'].ffill(), fill_value=0)
df