Python中的共现矩阵只给出了两列

Python中的共现矩阵只给出了两列,python,pandas,matrix,Python,Pandas,Matrix,对于这个简单的问题,我深表歉意,但网上的参考资料似乎都与NLP有关,我认为我的情况相当简单 我有一个类似的类别数据框架: df = pd.DataFrame({'x': [1,2,62,3,3], 'y':[5,6,6,1,1]}) 我想创建一个正方形矩阵,它在x和u中都有唯一的值,作为列/行。在这种情况下,它将是[1,2,3,5,6,62],矩阵中的值是每对类别出现的频率。因此,行“1”和列“5”的值为1,行“3”,列“1”的值为2 非常感谢 df.pivot_table(index='x'

对于这个简单的问题,我深表歉意,但网上的参考资料似乎都与NLP有关,我认为我的情况相当简单

我有一个类似的类别数据框架:

df = pd.DataFrame({'x': [1,2,62,3,3], 'y':[5,6,6,1,1]})
我想创建一个正方形矩阵,它在x和u中都有唯一的值,作为列/行。在这种情况下,它将是[1,2,3,5,6,62],矩阵中的值是每对类别出现的频率。因此,行“1”和列“5”的值为1,行“3”,列“1”的值为2

非常感谢

df.pivot_table(index='x', columns='y', aggfunc='size').fillna(0)
您可以使用聚合函数,其中聚合函数是每个组合的计数(
size
),行(索引)是
x
,列是
y
(当然,您也可以这样做)


我为不存在的组合添加了
fillna(0)
,这样看起来会更好。

pd.crosstab(df[“x”]、df[“y”])
?但这并没有给出一个方阵,我希望x和y中的所有唯一值都在行轴和列轴上,并且方阵最终是对称的。也就是说,第3行和第1列=2,第1行和第3列=2。