如何从 2 列 DataFrame 创建一个 DataFrame 来计算第 2 列到第 1 列的出现次数?

罗伊

我有以下 2 列数据框:

交易编号 商品编号
1 50
3 57
1 57
1 54
2 52
2 54

我想创建一个大小为 len(item_id) x len(item_id) 的平方对角矩阵,这样对于每个项目 id,我们都有一个向量,其中每个条目表示该项目 id 与另一个项目 id 共享事务的次数.

在我们的示例中,我想要以下结果:

          50     52     54     57
50         1     0      1      1
52         0     1      1      0
54         1     1      2      1
57         1     0      1      2

健全性检查可以是对角线:条目 (i, i) 应该具有其数量级为第 i 的项目 id 总共出现的次数。生成的矩阵也应该是对角的。

我尝试使用的几个函数是 pd.get_dummies() 和 groupby() 但没有结果。

rhug123

试试这个:

ndf = (df.set_index('transaction id')['item id']
       .astype(str)
       .str.get_dummies()
       .groupby(level=0).sum())
ndf.T.dot(ndf)

输出:

    50  52  54  57
50   1   0   1   1
52   0   1   1   0
54   1   1   2   1
57   1   0   1   2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从两个列表创建一个 Pandas Dataframe:第 1 列是第一个列表,第 2 列是第二个列表,它是一个嵌套列表

如何从 2 个 DataFrame 的 2 列创建 PySpark DataFrame?

根据python中的条件使用第1行或第2行中的值更新dataframe列

如果第1列具有特定值,如何计算第2列的均值?[R

用1000除以第2列到第1000列

dataframe列到2d numpy数组,根据dataframe另一个列值计数

如何计算根据另一列在DataFrame中发生某个值的出现次数?

将第 1 列和第 2 列与另一个表进行比较

计算DataFrame每列中值出现的次数

计算跨列的DataFrame中的出现次数

如何根据第1列更新第2列,然后根据第2列更新第3列

BASH-使用for循环和If语句在第2列到第2列中更改信息

如何根据第 2 列条件获取第 1 列中的唯一值

如何计算第1列并返回第2列的结果以获取当前行及以上的特定ID号?

如果第2列(表A)中存在第1列(表B),则熊猫计算第1列(表A)的唯一值。

创建一个与2列匹配的按钮,并在第3列中输入一个值

如何在换行符上拆分DataFrame列值并使用最后2个项目(行)创建一个新列

计算不同列中2个值的出现次数

将两个列合并到一个DataFrame中,并使用PySpark计算出现次数

如何添加由来自 2 个不同 DataFrame 的另一列的总和组成的 DataFrame 列

在按 2 个字段分组的 DataFrame 中,从第一个分组字段内的第二个分组字段计算第 n 行和第 n-1 行之间的差异

Pandas Dataframe:前两列分组并计算第一列的出现次数

计算 2 列中值的出现次数

每月进行计数-在一个列范围内出现一个数字(1/2/3)的次数

Python:如何通过将Dataframe中的2列与一个循环相乘来仅替换一列中的0值?

如何创建一个包含 5 个块的 CSS 网格(第 1 行 2 个,第 2 行 3 个)

如何创建一个新的DataFrame,其中每一列代表一个实例在上一个DataFrame的一行中的出现

当第1列> 0且第2列<= 0时如何将值从第1列分配给第2列

仅当特定列至少包含另一列的一个单词时,才从 Dataframe2 合并 Dataframe1 的 Python/Pandas 中的列