Option 1
brute force
xt = pd.DataFrame(index=x, columns=x)
for i in x:
for j in x:
xt.set_value(i, j, my_func(i, j))
Demo
def my_func(i, j):
return ord(i) * ord(j)
x = ['A', 'B', 'C', 'D', 'E', 'F']
xt = pd.DataFrame(index=x, columns=x)
for i in x:
for j in x:
xt.set_value(i, j, my_func(i, j))
xt
A B C D E F
A 4225 4290 4355 4420 4485 4550
B 4290 4356 4422 4488 4554 4620
C 4355 4422 4489 4556 4623 4690
D 4420 4488 4556 4624 4692 4760
E 4485 4554 4623 4692 4761 4830
F 4550 4620 4690 4760 4830 4900
Option 2
idx = pd.MultiIndex.from_product([x, x])
pd.Series(idx.map(lambda x: my_func(*x)), idx).unstack()
A B C D E F
A 4225 4290 4355 4420 4485 4550
B 4290 4356 4422 4488 4554 4620
C 4355 4422 4489 4556 4623 4690
D 4420 4488 4556 4624 4692 4760
E 4485 4554 4623 4692 4761 4830
F 4550 4620 4690 4760 4830 4900
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…