【问题标题】:Co-occurence matrix in Python given just two columnsPython中的共现矩阵仅给出两列
【发布时间】:2020-11-07 01:19:47
【问题描述】:

抱歉这个简单的问题,但是网上的参考资料似乎都与 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。

在此先感谢

【问题讨论】:

  • pd.crosstab(df["x"], df["y"])?

标签: python pandas matrix


【解决方案1】:
df.pivot_table(index='x', columns='y', aggfunc='size').fillna(0)

您可以使用pivot_table 来表示聚合函数是每个组合的计数(size),行(索引)是x,列是y(当然你也可以这样做反之亦然)。

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

【讨论】:

  • 虽然这并没有给出方阵,但我希望 X 和 Y 中的所有唯一值都在行轴和列轴上,并且方阵最终将是对称的。也就是说,第 3 行和第 1 列 = 2,第 1 行和第 3 列 = 2。
猜你喜欢
  • 2017-05-30
  • 2016-11-12
  • 1970-01-01
  • 2021-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-30
  • 1970-01-01
相关资源
最近更新 更多