19. Consider following code that creates two dataframes :

import pandas as pd, numpy as np

ore1 = pd.DataFrame(np.array([[20,35,25,20], [11,28,32,20]]),
columns = [ ‘ iron’, ‘magnesium’, ‘copper’,’silver’])
ore2 = pd.DataFrame(np.array([[14,34,26,26], [33,19,25,23]]),
columns = [‘iron’, ‘magnesium’, ‘gold’,’silver’])

(a)
print(ore1 + ore2)
ore3 = ore1.radd(ore2)
print(ore3)
# both will be same
# Output
iron copper gold iron magnesium silver
0 NaN NaN NaN NaN 69 46
1 NaN NaN NaN NaN 47 43
iron copper gold iron magnesium silver
0 NaN NaN NaN NaN 69 46
1 NaN NaN NaN NaN 47 43

(b)
print(ore1 – ore2)
ore3 = ore1.rsub(ore2)
print(ore3)
# both will have only sign difference
# Output
iron copper gold iron magnesium silver
0 NaN NaN NaN NaN 1 -6
1 NaN NaN NaN NaN 9 -3
iron copper gold iron magnesium silver
0 NaN NaN NaN NaN -1 6
1 NaN NaN NaN NaN -9 3

(c)
print(ore1 * ore2)
ore3 = ore1.mul(ore2)
print(ore3)
# both will be same
# Output
iron copper gold iron magnesium silver
0 NaN NaN NaN NaN 1190 520
1 NaN NaN NaN NaN 532 460
iron copper gold iron magnesium silver
0 NaN NaN NaN NaN 1190 520
1 NaN NaN NaN NaN 532 460

(d)
print(ore1/ore2)
ore3 = ore1.rdiv(ore2)
print(ore3)
# both will be different as first i ore1/ore2 while ore3 is ore2/ore1
iron copper gold iron magnesium silver
0 NaN NaN NaN NaN 1.029412 0.769231
1 NaN NaN NaN NaN 1.473684 0.869565
iron copper gold iron magnesium silver
0 NaN NaN NaN NaN 0.971429 1.30
1 NaN NaN NaN NaN 0.678571 1.15