Tengo un marco de datos de pandas aquí:
import pandas as pd df = pd.DataFrame({'col1': ['a','a','b','b'], 'col2': ['a','a','b','b']})Tengo un diccionario de mapeo aquí:
dict_map = {'col1': {'a': 0.5, 'b': 1.0}, 'col2': {'a': 0.6, 'b': 0.9}}Quiero mapear cada columna con el diccionario correspondiente para que el marco de datos se vea así:
col1 col2 0 0.5 0.6 1 0.5 0.6 2 1.0 0.9 3 1.0 0.9 Puedo iterar fácilmente a través de las columnas en df y lograr el resultado deseado, pero estoy tratando de evitar la iteración. ¿Cómo puedo hacer esto sin iterar?
Puedes usar pandas.DataFrame.replace :
df = df.replace(dict_map)Producción:
>>> df col1 col2 0 0.5 0.6 1 0.5 0.6 2 1.0 0.9 3 1.0 0.9Usaría la df.replace(dict) para evitar bucles.