Como se ha comentado, las operaciones binarias alinearán los datos de los dataframes involucrados según sus etiquetas de filas y columnas antes de ejecutarse. De esta forma, si partimos de los dos siguientes dataframes:
...podemos sumarlos obteniendo el siguiente resultado:
Vemos cómo pandas ha insertado NaN's en aquellas combinaciones de etiquetas para las que no hay un valor en ambos dataframes.
Es de destacar -ya se ha comentado en secciones anteriores- que la alineación se produce con independencia del orden en el que las etiquetas aparezcan en los índices.
Podemos realizar la misma operación y asignar el resultado a uno de los dataframes con el método pandas.DataFrame.add:
Con este método, de forma semejante a como ocurría con las series, es posible establecar un valor predeterminado para aquellos valores que no se encuentren en uno de los dataframes usando el parámetro fill_value:
Ahora, el valor correspondiente a A-Abr no es un NaN, sino 2 (valor que podemos encontrar en el dataframe df2). Aquellas combinaciones de etiquetas para las que no existe valor alguno en ninguno de los dos dataframes siguen recibiendo un NaN.
Se muestra a continuación un listado con algunas operaciones básicas disponibles como métodos de dataframes:
- pandas.DataFrame.add: suma los dos dataframes, elemento por elemento
- pandas.DataFrame.sub: resta a un dataframe otro dataframe, elemento por elemento
- pandas.DataFrame.mul: multiplica un dataframe por otro, elemento por elemento
- pandas.DataFrame.div: divide un dataframe por otro, elemento por elemento
- pandas.DataFrame.mod: devuelve el resultado de calcular el módulo de un dataframe y otro dataframe, elemento por elemento
- pandas.DataFrame.dot: devuelve la multiplicación de las dos matrices representadas por los dos dataframes
- pandas.DataFrame.abs: devuelve una copia del dataframe conteniendo el valor absoluto de cada uno de sus valores
Podemos encontrar en la documentación oficial de pandas el listado completo de funciones disponibles.