Jump to content

Incremento +1 do valor anterior conforme o valor de uma coluna


carlosfarias

Postagens Recomendadas

Estou com um problema para fazer um incremento +1 conforme o valor da coluna "Qtd_cartoes".

image.png

Preciso incrementar +1 no valor de "Nº_cartão" anterior conforme a coluna "Qtd_cartoes".

No exemplo da imagem, deveria adicionar +1 ao numero anterior, 56 vezes.

Depois que adicionar as 56 vezes, segue para um outro "Nº_cartão", adicionando +1 conforme a nova quantidade.

Já tentei utilizar o código abaixo e não funcionou.

df_rep['value'] = np.where(df_rep['Qtd_cartoes'] > 1, df_rep['Nº_cartão'] + 1, df_rep['Nº_cartão'])

Como deve ficar:

Nº_cartão - Qtd_cartoes

40327 - 56

40328 - 56

40329 - 56

40330 - 56

40331 - 56

40332 - 56

...

...

40853 - 112

40854 - 112

40855 - 112

...

...

Link to comment
Compartilhe em outros sites

  • Pessoal da TecnoSpeed

Olá @carlosfarias segue abaixo um jeito de realizar o que você deseja. 👍

for qtd in df['Qtd_cartoes'].unique():
    numero = 0
    for index,row in df.iterrows():
        if df.loc[index,'Qtd_cartoes'] == qtd:
            df.loc[index,'N°_cartão'] = df.loc[index,'N°_cartão'] + numero
            numero += 1

Com isso você terá o seguinte resultado.

DataFrame antes do script                          DataFrame após o script                               Validação
                                                                                                                                       (Verifique os cartões de número 853)

image.png       image.png     image.png

Enfim espero que isso resolva sua dúvida, caso contrário fico a disposição para lhe ajudar. 😀

Link to comment
Compartilhe em outros sites

Em 12/08/2022 at 16:50, Thanael disse:

Olá @carlosfarias segue abaixo um jeito de realizar o que você deseja. 👍

for qtd in df['Qtd_cartoes'].unique():
    numero = 0
    for index,row in df.iterrows():
        if df.loc[index,'Qtd_cartoes'] == qtd:
            df.loc[index,'N°_cartão'] = df.loc[index,'N°_cartão'] + numero
            numero += 1

Com isso você terá o seguinte resultado.

DataFrame antes do script                          DataFrame após o script                               Validação
                                                                                                                                       (Verifique os cartões de número 853)

image.png       image.png     image.png

Enfim espero que isso resolva sua dúvida, caso contrário fico a disposição para lhe ajudar. 😀

É exatamente isso que preciso, porém fui testar aqui e esta dando o seguinte erro. Saberia me dizer o porquê?

image.png

Link to comment
Compartilhe em outros sites

  • Pessoal da TecnoSpeed

Bom dia @carlosfarias, tenta fazer o seguinte, antes do FOR executa 

df.reset_index()

Para resetar os index ai tenta executar normalmente o código.

Caso mesmo assim não funcionar poderia me mandar um print do dataframe contendo os index? igual na imagem que mandei anteriormente.

Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...