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
11
Para isto:
Coluna
1
2
3
4
5
6
7
8
9
10
11
Grato 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
11
Para isto:
Coluna
1
2
3
4
5
6
7
8
9
10
11
Grato 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)
df
Temos 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