cgo*_*die 3 python matrix crosstab pandas
输入
name score
bob 2
fred 4
jim 1
anne 5
Run Code Online (Sandbox Code Playgroud)
期望的输出(分数比率:例如第 1 行中的 bob*fred = 2/4 等)
name bob fred jim anne
bob 1 0.5 2 0.4
fred 2 1 4 0.8
jim 0.5 0.2 1 0.2
anne 2.5 1.25 5 1
Run Code Online (Sandbox Code Playgroud)
我们可以尝试用outer来计算列np.divide.outer的外除score
n, s = df.to_numpy().T
pd.DataFrame(np.divide.outer(s, s), n, n)
Run Code Online (Sandbox Code Playgroud)
bob fred jim anne
bob 1.0 0.5 2.0 0.4
fred 2.0 1.0 4.0 0.8
jim 0.5 0.25 1.0 0.2
anne 2.5 1.25 5.0 1.0
Run Code Online (Sandbox Code Playgroud)