首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫框架与列表的有效元素比较

熊猫框架与列表的有效元素比较
EN

Stack Overflow用户
提问于 2021-09-20 19:11:58
回答 1查看 97关注 0票数 0

假设我有两个对象:

  • A是一个名字列表
  • B是一个包含三个栏的熊猫框架:“名字”、“朋友1”、“朋友2”,列出了一个人的名字和他们两个最好的朋友的名字。

对于我的应用程序,我想知道:对于A中的每个人,B中的每个人都有一个列表,其中A中的人是两个最好的朋友之一。具体来说,对于A中的每一个人,我想要一个布尔人的列表( my_bool ),其计算方式如下:

代码语言:javascript
复制
for current_name in A:
    my_bool = (B['friend1'] == current_name) | (B['friend2'] == current_name)
    [ ... other computation using my_bool ... ]

计算是可行的,但我正在努力提高效率。例如,当A的长度为15k,B有50k行时,计算时间非常长。

我的学费是:循环扫描B中每一个人的50k行A是没有效率的。是否有一种方法将计算矢量化,例如,在一击(无循环)中创建一个15kx50k矩阵all_bools,然后在需要时读取my_bool (作为all_bools的行)?在另一种语言中,我可以实现这个想法,但我无法用Python实现它。如果这个想法也是垃圾,请随意提出你的建议。

EN

回答 1

Stack Overflow用户

发布于 2021-09-20 21:29:57

您可以使用pd.Series.isin方法,该方法将列表隐式转换为具有更高效查找时间的哈希映射。

代码语言:javascript
复制
my_bool = B['friend1'].isin(A) | B['friend2'].isin(B)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69259702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档