来自列 pandas 的两个条目 table

Two entry table from columns pandas

我正在尝试从我的 df 中的许多列中创建一个“双条目 table”。我尝试使用 pivot_table / crosstrab / groupby 但使用此函数的结果并不完整,因为不会是“两次输入 table”

例如,如果我有这样的数据框:

 df
 A  B  C  D  E  
 1  0  0  1  1        
 0  1  0  1  0      
 1  1  1  1  1      

我想将我的 df 转换为可以被视为“双条目 table”的 df

   A B C D E
A  2 1 1 2 2
B  1 2 1 2 1 
C  1 1 1 1 1
D  2 2 1 3 1
E  2 1 1 1 2

所以如果我应该解释第一行,因为 A 在他的列中有两个 1,然后 A-A = 2,A-B = 1 因为他们在 df 的第三行级别共享一个,A-C = 1 因为 df 中的第三行他们在同一行级别共享一个,最后 A-E = 2 因为他们在 df

的第一行和第三行共享一个

pd.DataFrame.dotT一起使用:

df.T.dot(df) # or df.T@df

输出:

   A  B  C  D  E
A  2  1  1  2  2
B  1  2  1  2  1
C  1  1  1  1  1
D  2  2  1  3  2
E  2  1  1  2  2