Utilizar merge_asof()

Unir datos con pandas

Aaren Stubberfield

Instructor

Utilizar merge_asof()

Unir dos tablas utilizando merge_asof

  • Similar a una unión a la izquierda merge_ordered()
    • Características similares a merge_ordered()
  • Busca la coincidencia en la columna clave más cercana y no las coincidencias exactas.
    • Las columnas fusionadas "on" deben estar ordenadas.
Unir datos con pandas

Utilizar merge_asof()

Unir dos tablas utilizando merge_asof

  • Similar a una unión a la izquierda merge_ordered()
    • Características similares a merge_ordered()
  • Busca la coincidencia en la columna clave más cercana y no las coincidencias exactas.
    • Las columnas fusionadas "on" deben estar ordenadas.
Unir datos con pandas

Conjuntos de datos

Nombre de la tabla: visa

  date_time            close   
0 2017-11-17 16:00:00  110.32  
1 2017-11-17 17:00:00  110.24  
2 2017-11-17 18:00:00  110.065 
3 2017-11-17 19:00:00  110.04  
4 2017-11-17 20:00:00  110.0   
5 2017-11-17 21:00:00  109.9966
6 2017-11-17 22:00:00  109.82  

Nombre de la tabla: ibm

   date_time            close   
0  2017-11-17 15:35:12  149.3   
1  2017-11-17 15:40:34  149.13  
2  2017-11-17 15:45:50  148.98  
3  2017-11-17 15:50:20  148.99  
4  2017-11-17 15:55:10  149.11  
5  2017-11-17 16:00:03  149.25  
6  2017-11-17 16:05:06  149.5175
7  2017-11-17 16:10:12  149.57  
8  2017-11-17 16:15:30  149.59  
9  2017-11-17 16:20:32  149.82  
10 2017-11-17 16:25:47  149.96
Unir datos con pandas

Ejemplo de merge_asof()

pd.merge_asof(visa, ibm, on='date_time', 
              suffixes=('_visa','_ibm'))
  date_time            close_visa  close_ibm
0 2017-11-17 16:00:00  110.32      149.11   
1 2017-11-17 17:00:00  110.24      149.83   
2 2017-11-17 18:00:00  110.065     149.59   
3 2017-11-17 19:00:00  110.04      149.505  
4 2017-11-17 20:00:00  110.0       149.42   
5 2017-11-17 21:00:00  109.9966    149.26   
6 2017-11-17 22:00:00  109.82      148.97

Nombre de la tabla: ibm

   date_time            close   
0  2017-11-17 15:35:12  149.3   
1  2017-11-17 15:40:34  149.13  
2  2017-11-17 15:45:50  148.98  
3  2017-11-17 15:50:20  148.99  
4  2017-11-17 15:55:10  149.11  
5  2017-11-17 16:00:03  149.25  
6  2017-11-17 16:05:06  149.5175
7  2017-11-17 16:10:12  149.57  
8  2017-11-17 16:15:30  149.59  
9  2017-11-17 16:20:32  149.82  
10 2017-11-17 16:25:47  149.96
Unir datos con pandas

Ejemplo de merge_asof() con dirección

pd.merge_asof(visa, ibm, on=['date_time'], 
              suffixes=('_visa','_ibm'), 
              direction='forward')
  date_time            close_visa  close_ibm
0 2017-11-17 16:00:00  110.32      149.25   
1 2017-11-17 17:00:00  110.24      149.6184 
2 2017-11-17 18:00:00  110.065     149.59   
3 2017-11-17 19:00:00  110.04      149.505  
4 2017-11-17 20:00:00  110.0       149.42   
5 2017-11-17 21:00:00  109.9966    149.26   
6 2017-11-17 22:00:00  109.82      148.97   

Nombre de la tabla: ibm

   date_time            close   
0  2017-11-17 15:35:12  149.3   
1  2017-11-17 15:40:34  149.13  
2  2017-11-17 15:45:50  148.98  
3  2017-11-17 15:50:20  148.99  
4  2017-11-17 15:55:10  149.11  
5  2017-11-17 16:00:03  149.25  
6  2017-11-17 16:05:06  149.5175
7  2017-11-17 16:10:12  149.57  
8  2017-11-17 16:15:30  149.59  
9  2017-11-17 16:20:32  149.82  
10 2017-11-17 16:25:47  149.96
Unir datos con pandas

Cuándo utilizar merge_asof()

  • Datos muestreados de un proceso.
  • Desarrollo de un conjunto de entrenamiento (sin fuga de datos)
Unir datos con pandas

¡Vamos a practicar!

Unir datos con pandas

Preparing Video For Download...