Let's try this:
Correct some data:
td=[((1, 1), 1), ((1, 2), 2), ((1, 3), 1), ((2, 1), 1),
((2, 2), 5), ((3, 2), 2), ((3, 1), 1)]
Smooth tuples
l = [(i[0],i[1],v) for i,v in td]
lol = [list(e) for e in l]
Create and modify data form
pd.DataFrame(lol).set_index([1,0]).rename_axis([None,None]).unstack()[2]\
.fillna(0).astype(int)
Conclusion:
1 2 3
1 1 1 1
2 2 5 2
3 1 0 0
To expand the data format:
pd.DataFrame(lol).set_index([1,0]).rename_axis([None,None]).unstack()[2]\
.reindex(index=np.arange(1,10), columns=np.arange(1,10)).fillna(0).astype(int)
Conclusion:
1 2 3 4 5 6 7 8 9
1 9 0 0 0 0 0 0 0 0
2 0 10 0 0 0 0 0 0 0
3 0 1 0 1 0 0 0 0 0
4 0 0 0 1 0 0 0 0 0
5 0 0 0 0 1 1 0 0 0
6 0 0 0 0 0 1 0 0 0
7 0 0 0 0 0 0 0 0 0
8 0 0 0 0 0 0 0 0 0
9 0 0 0 0 0 0 0 0 0