La función pandas.concat es la responsable de concatenar dos o más dataframes (y de todas las estructuras proveídas por pandas) a lo largo de un eje, con soporte a lógica de conjuntos a la hora de gestionar etiquetas en ejes no coincidentes. Veamos un primer caso, el más sencillo posible, para el que partimos de los siguientes dos dataframes:
Nota: tal y como ha ocurrido en secciones anteriores, en algunos de los ejemplos que se muestran a continuación se utiliza el argumento sort = False para evitar que se muestre un aviso al respecto de cierto cambio de funcionalidad que se producirá en futuras versiones de esta librería.
Si pasamos a la función concat ambos dataframes como primer argumento (en forma de lista), obtenemos el siguiente resultado:
Vemos cómo, por defecto, la concatenación se ha realizado a lo largo del eje 0 (eje vertical), uniendo los índices de fila de ambos dataframes, y alineando las columnas por su etiqueta. Los valores para los que no hay datos se han rellenado con NaN (opción correspondiente al argumento por defecto join: "outer").
Si especificamos que la concatenación se realice a lo largo del eje 1 (eje horizontal), el resultado es el siguiente:
De modo semejante al primer ejemplo, se han introducido NaN's allí donde no había datos, y se han alineado las filas por su etiqueta.
Estos dos ejemplos vistos son tipo "Outer" (opción por defecto), considerando todas las etiquetas de los dos dataframes aun cuando no sean comunes a ambos. Pero si especificamos el argumento join = "Inner", los resultados pasan a considerar solo las etiquetas comunes. Así, para el primer ejemplo visto tenemos:
...incluyendo solo las columnas B y C comunes a ambos dataframes. Y para el segundo ejemplo tenemos:
...incluyendo solo las filas a y b comunes a ambos dataframes.
El parámetro ignore_index controla el índice a asignar al eje a lo largo del cuál se realiza la concatenación. Si este parámetro toma el valor False (por defecto), el eje de concatenación mantiene las etiquetas de los dataframes originales. Si toma el valor True, se ignoran dichas etiquetas y el resultado de la concatenación recibe un nuevo índice automático numérico. Por ejemplo, si añadimos a In [176] el argumento ignore_index=True, obtenemos el siguiente resultado: