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.
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