在熊猫数据框中成对计数

use*_*514 5 python pandas

我正在熊猫中寻找一种简单的方法来计算两列之间的所有成对组合。例如:

df

Col1    Col2   Freq
 A        B     1
 B        A     1
 A        C     1
 C        B     1
 C        A     1
Run Code Online (Sandbox Code Playgroud)

预期输出:

Col1    Col2   Freq
 A        B     2
 A        C     2
 C        B     1
Run Code Online (Sandbox Code Playgroud)

谢谢

Qua*_*ang 0

虽然这显然是其他人的重复,但我不确定是否在某处提到了以下方法:

s = (df.groupby(['Col1','Col2'])
       .Freq.sum()
       .unstack(-1, fill_value=0)
    )

np.triu(s) + np.triu(s.T,1)
Run Code Online (Sandbox Code Playgroud)

输出:

array([[0, 2, 2],
       [0, 0, 1],
       [0, 0, 0]], dtype=int64)
Run Code Online (Sandbox Code Playgroud)