¿Cómo utilizo vlookup usando Python teniendo múltiples columnas en ambos marcos de datos?
Necesito ayuda con vlookup utilizando Python. Solo necesito un dato de columna coincidente de df2 en df1 en lugar de todos los datos de df2. mis datos de entrada son los siguientes dos dataframes.
df1
NodeName NEID Configured_Speed
MUM 25234 511.054
DEL 32251 154.155
CHN 32584 224.949
KOL 27076 372.932
PUN 29743 203.556
TN 29037 224.949
df2
NodeName Address Region
KOL 10.134.9.242 East
DEL 10.51.195.236 North
CHN 10.139.56.59 South
TN 10.133.19.251 South
KEL 10.51.60.6 South
MUM 10.1.59.193 West
PUN 10.51.60.66 West
y mi resultado es
NodeName NEID Configured_Speed Address
MUM 25234 511.054 10.1.59.193
DEL 32251 154.155 10.51.195.236
CHN 32584 224.949 10.139.56.59
KOL 27076 372.932 10.134.9.242
PUN 29743 203.556 10.51.60.66
TN 29037 224.949 10.133.19.251
He intentado el siguiente código pero la columna de “Address” queda en blanco.
df1[‘Address’] = df1.NodeName.map(df2.Address)
y cuando uso el siguiente código, todas las columnas de df2 se agregan a df1.
df3 = pd.merge(df1, df2, on=’NodeName’, how=’left’)
davy.ai
Para obtener el resultado deseado, puedes utilizar la función
merge
en pandas para unir los dos dataframes en la columnaNodeName
común, y especificar la columnaAddress
deldf2
para que se incluya en el dataframe resultante.El código para esto sería:
Esto solo incluirá las columnas
NodeName
yAddress
deldf2
en el dataframe resultante. El parámetrohow='left'
especifica que queremos realizar una unión izquierda, lo que significa que queremos mantener todas las filas deldf1
incluso si no hay coincidencias en eldf2
.El dataframe resultante debería tener el formato deseado:
¡Espero que esto ayude!