es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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’)

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener el resultado deseado, puedes utilizar la función merge en pandas para unir los dos dataframes en la columna NodeName común, y especificar la columna Address del df2 para que se incluya en el dataframe resultante.

    El código para esto sería:

    df_merged = pd.merge(df1, df2[['NodeName', 'Address']], on='NodeName', how='left')
    

    Esto solo incluirá las columnas NodeName y Address del df2 en el dataframe resultante. El parámetro how='left' especifica que queremos realizar una unión izquierda, lo que significa que queremos mantener todas las filas del df1 incluso si no hay coincidencias en el df2.

    El dataframe resultante debería tener el formato deseado:

      NodeName   NEID  Configured_Speed        Address
    0      MUM  25234          511.054   10.1.59.193
    1      DEL  32251          154.155  10.51.195.236
    2      CHN  32584          224.949   10.139.56.59
    3      KOL  27076          372.932   10.134.9.242
    4      PUN  29743          203.556   10.51.60.66
    5       TN  29037          224.949  10.133.19.251
    

    ¡Espero que esto ayude!

Comments are closed.