根据熊猫DataFrame中的一对列从二级表中找到交集的最有效方法是什么?

罗科·米奇(Roko Mijic)

我在熊猫中有3个数据框:

UserItem是用户和用户选择的项目的DataFrame,具有2列,即User和Item。

UserTag是一个由用户和标签组成的DataFrame,具有两列,即User和Tag。

ItemTag是项和标签的DataFrame,具有两列,即项和标签。

UserItem_df = pd.DataFrame({'user': ['A', 'B', 'B']      ,  'item': ['i', 'j', 'k']})
UserTag_df  = pd.DataFrame({'user': ['A', 'B']           ,  'tag' : ['T', 'R']})
ItemTag_df  = pd.DataFrame({'item': ['i', 'j', 'k', 'k'] ,  'tag' : ['T', 'S', 'T', 'R']})

我想为UserItem中的每个(用户,项目)对计算该用户的标签与该项目的标签的交集(以及并集!)的大小。

Answer_df = pd.DataFrame({'user': ['A', 'B', 'B']  , 'item': ['i', 'j', 'k'], 'intersection':  [1, 0, 1], 'union' : [1, 2, 2]})

最有效的方法是什么?这些是具有30M行(UserItem_df)的数据帧,其他两个行约有50万行。所有可能的(用户,项目)对的乘积集大约为300亿-我不需要所有可能的对的交集和并集,仅需要UserItem数据帧中的对。

Shubham Sharma

采用 :

# step 1:
df1 = pd.merge(UserItem_df, UserTag_df, on='user')

# step 2:
df2 = pd.merge(UserItem_df, ItemTag_df, on='item')

# step 3
df3 = pd.concat([df1, df2], ignore_index=True)

# step 4
df3 = (
    df3.groupby(['user', 'item'])['tag']
    .agg(intersection='count', union='nunique')
    .reset_index()
)
df3['intersection'] -= df3['union']

脚步:

# step 1: df1
  user item tag
0    A    i   T
1    B    j   R
2    B    k   R

# step 2: df2
  user item tag
0    A    i   T
1    B    j   S
2    B    k   T
3    B    k   R

# step 3: df3
  user item tag
0    A    i   T
1    B    j   R
2    B    k   R
3    A    i   T
4    B    j   S
5    B    k   T
6    B    k   R

# step 4: df3
  user item  intersection  union
0    A    i             1      1
1    B    j             0      2
2    B    k             1      2

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Spark在PairRDD中获取唯一对的最有效方法是什么?

来自分类Dev

在iOS中显示具有多列的表的最有效方法是什么?

来自分类Dev

在python中找到线与圆的交点的最有效方法是什么?

来自分类Dev

在R中删除数据表中空列的最有效方法是什么

来自分类Dev

显示一对一关系的最有效方法是什么[Laravel]

来自分类Dev

用Pandas检查2个系列中的一对值的最有效方法是什么?

来自分类常见问题

创建两个熊猫数据框列的字典的最有效方法是什么?

来自分类Dev

将元组一分为二的最有效方法是什么?

来自分类Dev

同步熊猫中两个大数据帧的最有效方法是什么?

来自分类Dev

在python中以二进制输出编写的最有效方法是什么?

来自分类Dev

在python中以二进制输出编写的最有效方法是什么?

来自分类Dev

对 Dataframe 中的一组选定行执行数学运算的最有效方法是什么

来自分类Dev

在Haxe中循环最有效的方法是什么?

来自分类Dev

查找值 X 不在 Y 列中的记录的最有效方法是什么?

来自分类Dev

根据最近的先前日期在2个表之间匹配值的最有效方法是什么?

来自分类Dev

在javascript中获取数字的最低有效位的最有效方法是什么?

来自分类Dev

根据另一个列表中的值从列表中筛选出值的最有效方法是什么

来自分类Dev

在矩阵中连同位置一起找到最大元素的最有效方法是什么?此外,每列中具有位置的最大元素

来自分类Dev

在Python中迭代列表并找到合适的字符串模式的最快(最有效)方法是什么?

来自分类Dev

在Java中构建未排序的二叉树的最有效方法是什么?

来自分类Dev

在python中,获取二维numpy数组中值总和的最有效方法是什么?

来自分类Dev

计算大熊猫数量的最有效方法是什么?

来自分类Dev

使用Java多线程,协调找到最佳结果的最有效方法是什么?

来自分类Dev

从具有特定根目录的SQL表中获取最新分支的最有效方法是什么?

来自分类Dev

根据像素的颜色生成RGB图像的布尔蒙版的最有效的方法是什么?

来自分类Dev

使用 Lodash 或 vanilla JS 根据对象键过滤数组的最有效方法是什么?

来自分类Dev

解码UTF16二进制文件的最有效方法是什么?

来自分类Dev

搜索二进制搜索树的最有效方法是什么?

来自分类Dev

用Pandas检查2个系列中的一对值的最有效方法?

Related 相关文章

  1. 1

    Spark在PairRDD中获取唯一对的最有效方法是什么?

  2. 2

    在iOS中显示具有多列的表的最有效方法是什么?

  3. 3

    在python中找到线与圆的交点的最有效方法是什么?

  4. 4

    在R中删除数据表中空列的最有效方法是什么

  5. 5

    显示一对一关系的最有效方法是什么[Laravel]

  6. 6

    用Pandas检查2个系列中的一对值的最有效方法是什么?

  7. 7

    创建两个熊猫数据框列的字典的最有效方法是什么?

  8. 8

    将元组一分为二的最有效方法是什么?

  9. 9

    同步熊猫中两个大数据帧的最有效方法是什么?

  10. 10

    在python中以二进制输出编写的最有效方法是什么?

  11. 11

    在python中以二进制输出编写的最有效方法是什么?

  12. 12

    对 Dataframe 中的一组选定行执行数学运算的最有效方法是什么

  13. 13

    在Haxe中循环最有效的方法是什么?

  14. 14

    查找值 X 不在 Y 列中的记录的最有效方法是什么?

  15. 15

    根据最近的先前日期在2个表之间匹配值的最有效方法是什么?

  16. 16

    在javascript中获取数字的最低有效位的最有效方法是什么?

  17. 17

    根据另一个列表中的值从列表中筛选出值的最有效方法是什么

  18. 18

    在矩阵中连同位置一起找到最大元素的最有效方法是什么?此外,每列中具有位置的最大元素

  19. 19

    在Python中迭代列表并找到合适的字符串模式的最快(最有效)方法是什么?

  20. 20

    在Java中构建未排序的二叉树的最有效方法是什么?

  21. 21

    在python中,获取二维numpy数组中值总和的最有效方法是什么?

  22. 22

    计算大熊猫数量的最有效方法是什么?

  23. 23

    使用Java多线程,协调找到最佳结果的最有效方法是什么?

  24. 24

    从具有特定根目录的SQL表中获取最新分支的最有效方法是什么?

  25. 25

    根据像素的颜色生成RGB图像的布尔蒙版的最有效的方法是什么?

  26. 26

    使用 Lodash 或 vanilla JS 根据对象键过滤数组的最有效方法是什么?

  27. 27

    解码UTF16二进制文件的最有效方法是什么?

  28. 28

    搜索二进制搜索树的最有效方法是什么?

  29. 29

    用Pandas检查2个系列中的一对值的最有效方法?

热门标签

归档