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

284
Visualizações
Pandas .str.replace no reemplaza todas las instancias en una tabla

Tengo un marco de datos con varias instancias de ' *Winner*' después del nombre de la persona. Me gustaría eliminar esto para que solo quede su nombre. A continuación se muestra una versión simplificada de esto:

 Data = {'YEAR': [2020, 2020, 2020], 'NAME': [ 'Tom *Winner*', 'Dick *Winner*', 'Harry *Winner*']} df = pd.DataFrame(Data) df['NAME'] = df['NAME'].str.replace(' [*]Winner[*]', '') df

Lo que resulta en esto:

 YEAR NAME 0 2020 Tom 1 2020 Dick *Winner* 2 2020 Harry

Así que mi pregunta es ¿cuál es la diferencia entre la etiqueta ' *Winner*' de Dick y las otras dos? ¿Por qué no se elimina este? ¿Hay una mejor manera de lograr esto?

Como una nota extra confusa, simplemente copié mi código anterior y lo volví a ejecutar (asumiendo que así es como la gente aquí podría probarlo) y elimina la etiqueta ' *Winner*' de Dick. Entonces, algo sobre mis datos originales es diferente y se elimina cuando se pega aquí. No estoy seguro de cómo ayudar a reproducirlo siendo este el caso.

Editar: por solicitud de @ user17242583, aquí está el resultado de df.to_dict()

 {'NAME': {0: 'Tom *Winner*', 1: 'Dick\xa0*Winner*', 2: 'Harry *Winner*'}, 'YEAR': {0: 2020, 1: 2020, 2: 2020}}
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Prueba esto:

 df['NAME'] = df['NAME'].str.replace('\s*\*Winner\*', '', regex=True)

Producción:

 >>> df YEAR NAME 0 2020 Tom 1 2020 Dick 2 2020 Harry

La razón por la que funciona es porque sus datos tienen un \xa0 , que es un espacio delgado que no se rompe . En su código original, tiene un espacio codificado, pero mi código usa \s* que significa "0 o más caracteres de espacio en blanco", que incluye \xa0 (código de caracteres 160).

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