Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

499
Views
Teclas superpuestas en el diccionario cuando se usa el método .replace () en el marco de datos de pandas

Quiero reemplazar algunos valores en una columna de un marco de datos usando un diccionario que asigna los códigos antiguos a los códigos nuevos.

 di = dict( { "myVar": {11:0, 204:11} } ) mydata.replace( to_replace = di, inplace = True )

Pero algunos de los códigos nuevos y viejos se superponen. Cuando uso el método .replace del marco de datos, encuentro el error 'Replacement not allowed with overlapping keys and values'

Mi solución actual es reemplazar las teclas ofensivas manualmente y luego aplicar el diccionario a los casos restantes que no se superponen.

 mydata.loc[ mydata.myVar == 11, "myVar" ] = 0 di = dict( { "myVar": {204:11} } ) mydata.replace( to_replace = di, inplace = True )

¿Hay una forma más compacta de hacer esto?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Encontré una respuesta aquí que usa el método .map en una serie junto con un diccionario. Aquí hay un diccionario de grabación de ejemplo con claves y valores superpuestos.

 import pandas as pd >>> df = pd.DataFrame( [1,2,3,4,1], columns = ['Var'] ) >>> df Var 0 1 1 2 2 3 3 4 4 1 >>> dict = {1:2, 2:3, 3:1, 4:3} >>> df.Var.map( dict ) 0 2 1 3 2 1 3 3 4 2 Name: Var, dtype: int64

ACTUALIZAR:

Con map, cada valor de la serie original debe asignarse a un nuevo valor. Si el diccionario de asignación no contiene todos los valores de la columna original, los valores no asignados se asignan a NaN.

 >>> df = pd.DataFrame( [1,2,3,4,1], columns = ['Var'] ) >>> dict = {1:2, 2:3, 3:1} >>> df.Var.map( dict ) 0 2.0 1 3.0 2 1.0 3 NaN 4 2.0 Name: Var, dtype: float64
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!