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

199
Views
Valores de búsqueda por encabezado de columna correspondiente en Pandas 1.2.0 o más reciente

La operación pandas.DataFrame.lookup está "en desuso desde la versión 1.2.0" y desde entonces ha invalidado muchas respuestas anteriores.

Esta publicación intenta funcionar como un recurso canónico para buscar pares de columnas de fila correspondientes en pandas versiones 1.2.0 y posteriores.

Algunas respuestas anteriores a este tipo de pregunta (ahora en desuso):

  1. Búsqueda vectorizada en un marco de datos de pandas
  2. Python Pandas Match Vlookup columnas basadas en valores de encabezado
  3. Usando DataFrame.lookup para obtener filas donde los nombres de las columnas son un subconjunto de una cadena
  4. Python: pandas: haga coincidir el valor de la fila con el nombre de la columna/valor de la clave

Algunas respuestas actuales a esta pregunta:

  1. Valor de DataFrame de referencia correspondiente al encabezado de columna
  2. Pandas/Python: cómo crear una nueva columna basada en valores de otras columnas y aplicar condiciones adicionales a esta nueva columna

Valores de búsqueda estándar con índice de rango predeterminado

Dado el siguiente DataFrame:

 df = pd.DataFrame({'Col': ['B', 'A', 'A', 'B'], 'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]}) Col AB 0 B 1 5 1 A 2 6 2 A 3 7 3 B 4 8

Me gustaría poder buscar el valor correspondiente en la columna especificada en Col :

Me gustaría que mi resultado se vea así:

 Col AB Val 0 B 1 5 5 1 A 2 6 2 2 A 3 7 3 3 B 4 8 8

Valores de búsqueda estándar con un índice no predeterminado

Índice de rango no contiguo

Dado el siguiente DataFrame:

 df = pd.DataFrame({'Col': ['B', 'A', 'A', 'B'], 'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]}, index=[0, 2, 8, 9]) Col AB 0 B 1 5 2 A 2 6 8 A 3 7 9 B 4 8

Me gustaría conservar el índice pero aún encontrar el valor correspondiente correcto:

 Col AB Val 0 B 1 5 5 2 A 2 6 2 8 A 3 7 3 9 B 4 8 8

índice múltiple

 df = pd.DataFrame({'Col': ['B', 'A', 'A', 'B'], 'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]}, index=pd.MultiIndex.from_product([['C', 'D'], ['E', 'F']])) Col AB CEB 1 5 FA 2 6 DEA 3 7 FB 4 8

Me gustaría conservar el índice pero aún encontrar el valor correspondiente correcto:

 Col AB Val CEB 1 5 5 FA 2 6 2 DEA 3 7 3 FB 4 8 8

Búsqueda con valor predeterminado para valores no coincidentes/no encontrados

Dado el siguiente DataFrame

 df = pd.DataFrame({'Col': ['B', 'A', 'A', 'C'], 'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]}) Col AB 0 B 1 5 1 A 2 6 2 A 3 7 3 C 4 8 # Column C does not correspond with any column

Me gustaría buscar los valores correspondientes si existe uno; de lo contrario, me gustaría tenerlo predeterminado en 0

 Col AB Val 0 B 1 5 5 1 A 2 6 2 2 A 3 7 3 3 C 4 8 0 # Default value 0 since C does not correspond

Buscar con valores faltantes en la búsqueda Col

Dado el siguiente DataFrame:

 Col AB 0 B 1 5 1 A 2 6 2 A 3 7 3 NaN 4 8 # <- Missing Lookup Key

Me gustaría que cualquier valor de NaN en Col resulte en un valor de NaN en Val

 Col AB Val 0 B 1 5 5.0 1 A 2 6 2.0 2 A 3 7 3.0 3 NaN 4 8 NaN # NaN to indicate missing
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Otra opción es crear una tupla de las columnas de búsqueda, girar el marco de datos y seleccionar las columnas relevantes con las tuplas:

 cols = [(ent, ent) for ent in df.Col.unique()] df.assign(Val = df.pivot(index = None, columns = 'Col') .reindex(columns = cols) .ffill(axis=1) .iloc[:, -1]) Col AB Val 0 B 1 5 5.0 2 A 2 6 2.0 8 A 3 7 3.0 9 B 4 8 8.0
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!