Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

246
Visualizações
Modificar filas duplicadas en el marco de datos (Python)

Estoy trabajando con un marco de datos en Pandas y necesito una solución para modificar automáticamente una de las columnas que tiene valores duplicados. Es un 'objeto' de tipo columna y necesitaría modificar el nombre de los valores duplicados. El marco de datos es el siguiente:

 City Year Restaurants 0 New York 2001 20 1 Paris 2000 40 2 New York 1999 41 3 Los Angeles 2004 35 4 Madrid 2001 22 5 New York 1998 33 6 Barcelona 2001 15

Como puedes ver, Nueva York se repite 3 veces. Me gustaría crear un nuevo dataframe en el cual este valor se modificaría automáticamente y el resultado sería el siguiente:

 City Year Restaurants 0 New York 2001 2001 20 1 Paris 2000 40 2 New York 1999 1999 41 3 Los Angeles 2004 35 4 Madrid 2001 22 5 New York 1998 1998 33 6 Barcelona 2001 15

También estaría feliz con "Nueva York 1", "Nueva York 2" y "Nueva York 3". Cualquier opción sería buena.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Use np.where para modificar la columna Ciudad si está duplicada

 df['City']=np.where(df['City'].duplicated(keep=False), df['City']+' '+df['Year'].astype(str),df['City'])
over 4 years ago · Santiago Trujillo Relatório

0

Un enfoque diferente sin el uso de numpy sería con groupby.cumcount() que le dará su alternativa New York 1, New York 2 pero para todos los valores.

 df['City'] = df['City'] + ' ' + df.groupby('City').cumcount().add(1).astype(str) City Year Restaurants 0 New York 1 2001 20 1 Paris 1 2000 40 2 New York 2 1999 41 3 Los Angeles 1 2004 35 4 Madrid 1 2001 22 5 New York 3 1998 33 6 Barcelona 1 2001 15

Para tener un incremento solo en los casos duplicados, puede usar loc :

 df.loc[df[df.City.duplicated(keep=False)].index, 'City'] = df['City'] + ' ' + df.groupby('City').cumcount().add(1).astype(str) City Year Restaurants 0 New York 1 2001 20 1 Paris 2000 40 2 New York 2 1999 41 3 Los Angeles 2004 35 4 Madrid 2001 22 5 New York 3 1998 33 6 Barcelona 2001 15
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda