1
resposta

Definir o índice da linha no Pandas checando se o valor de outra linha já ter sido indexado ou não

Bom dia!

O que estou tentando fazer com o Pandas é:

Digamos que temos um Pandas DataFrame como este:

              transaction_code   
1             4373-36            
2             3626-68                 
3             3626-68               
4             3281-23            
5             4721-44              
...
101           6273-56                
102           2836-78                 
103           1657-28                
104           3281-23              
105           5323-64 

Eu quero criar uma nova coluna chamada 'transaction_code_new_index', a qual conterá índices assim como o atual já existente, mas sempre que um transaction_code for duplicado (ou seja, o código 6273-75 pode existir 3 vezes no dataframe), eu quero que o índice desses códigos seja o mesmo para cada um desses duplicados (ou seja, para cada transação_code que corresponde a 6273-75, seu índice deve ser o mesmo em cada um)

Exemplo:

              transaction_code        transaction_code_new_index
1             4373-36                 1
2             3626-68                 2
3             3626-68                 2 (porque 3626-68 já foi indexado antes)
4             3281-23                 3
5             4721-44                 4
...
101           6273-56                 100
102           2836-78                 101
103           1657-28                 102
104           3281-23                 3 (porque 3281-23 já foi indexado antes)
105           5323-64                 103

Obrigado.

EDIT: Resolvido com o código:

df['new_index'] = df.groupby('transaction_code')['transaction_code'].transform(lambda x: x.index.min())

:)

1 resposta

Oi, Éverton! Tudo bem com você? Espero que sim!

Fico contente que você tenha achado a solução para seu problema, parabéns! E também agradeço por compartilhar aqui no fórum a solução, assim você vai ajudar mais pessoas com um problema similar a resolver ;-)

Bons estudos!