Prerrequisitos: Pandas
En este artículo, aprenderemos cómo unir dos marcos de datos que coincidan por substring con python.
Funciones utilizadas:
- join() : une todos los elementos en una iteración en una sola string
- lambda( ): un método anónimo que se declara sin nombre y puede aceptar cualquier número de parámetros
- find() : obtiene la apariencia inicial de cualquier valor requerido
- merge() : fusiona dos marcos de datos
Acercarse
Siga los pasos a continuación para unir dos marcos de datos emparejados por substring.
- Cree dos tramas de datos.
- Une dos marcos de datos usando el producto cartesiano
- Únase a una columna duplicada que incluya valores iguales en todos los DataFrames
- Únete a la nueva columna
- Por último, elimine la columna agregada en cada DataFrame.
- Luego, debemos agregar una nueva columna al marco de datos. Para hacer esto, usaremos las funciones «lambda» junto con «buscar» donde la salida es mayor que cero.
- Ahora imprimimos los marcos de datos unidos emparejados por substrings.
A continuación se muestra la implementación.
Python3
import pandas as pd dataFrame1 = pd.DataFrame([['PQR', 'B1'], ['QRS', 'B2'], ['RDE', 'B3']], columns=['work_name', 'tag_name']) dataFrame2 = pd.DataFrame([['RR', 'T1'], ['QR', 'T2'], ['HG', 'T3'], ['PQ', 'T4']], columns=['sub_work_name', 'extra_tag_value']) dataFrame1['join'] = 1 dataFrame2['join'] = 1 dataFrameFull = dataFrame1.merge( dataFrame2, on='join').drop('join', axis=1) dataFrame2.drop('join', axis=1, inplace=True) dataFrameFull['match'] = dataFrameFull.apply( lambda x: x.work_name.find(x.sub_work_name), axis=1).ge(0) print(dataFrameFull[dataFrameFull['match']])
Producción:
Publicación traducida automáticamente
Artículo escrito por rijushree100guha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA