In [2]:
import numpy as np
import pandas as pd

In [5]:
from sklearn.utils.extmath import cartesian
a = cartesian([np.arange(3),np.arange(3)])
joint_table = pd.DataFrame(a, columns=["X", "Y"])

In [6]:
probs = np.array([1/8, 1/8, 0, 1/8, 2/8, 1/8, 0, 1/8, 1/8])
joint_table["probability"] = probs
joint_table


Out[6]:
X Y probability
0 0 0 0.125
1 0 1 0.125
2 0 2 0.000
3 1 0 0.125
4 1 1 0.250
5 1 2 0.125
6 2 0 0.000
7 2 1 0.125
8 2 2 0.125

In [ ]:
rearrange = joint_table_new.pivot_table(index="Y", columns="X")
rearrange.index = ["Y=0", "Y=1", "Y=2"]
rearrange.columns = ["X=0", "X=1", "X=2"]
rearrange