首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >迭代不均匀列以查找现有值的最快方法

迭代不均匀列以查找现有值的最快方法
EN

Stack Overflow用户
提问于 2021-06-15 00:47:38
回答 2查看 52关注 0票数 0

我有2个DataFrames (df1) 35k和(df2) 76k行,我需要检查df1["col1"]元素是否存在于df2["col2"]子元素中。代码在我提供的样本数据集上似乎工作得很好,但运行时永远要花在原始数据集上。以下是我在样本数据集上使用的for循环代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd

post_token_list = [['wXrL3TbK'], ['wXmTQKw1'], ['wXvnlWej'], ['wXvXBjKp']]
tokens_list = [['wXv3qoPQ', 'wXvT7ylu', 'wXvnIJuH', 'wXvXH7vy', 'wXvDXSS1', 'wXvjVE1F', 'wXvPV6z1', 'wXvHF1uw',
                'wXvH1q03', 'wXvnTlcr', 'wXvDEG9U', 'wXLfZtO6', 'wXvLDDDl', 'wXvHTgjk', 'wXvHDDr8', 'wXvPBLbu',
                'wXvvxXHI', 'wXvPBFge', 'wXvLxSii', 'wXvDhk2h', 'wXv3Alan', 'wXvvQuKy', 'wXvvQ6LO', 'wXpHNjw9'],
               ['wXYr2lVk', 'wXXj7iDP', 'wXXXIsQr', 'wXQbXKz6', 'wXN3tMp1', 'wXMfZV5N', 'wXvnlWej', 'wXSDyEaW',
                'wXQ7mM78', 'wXMPvojh', 'wXMjo-8G', 'wXLfZtO6', 'wXN3tMp1'],
               ['wXr_jZmX', 'wXr7D0AM', 'wXrzjhxL', 'wXrfjQNe', 'wXrnihqT', 'wXrjyqm5', 'wXr3CD4h', 'wXrnSZsy',
                'wXrTieP7', 'wXLfZtO6', 'wXgHVwkc', 'wXdvewsV', 'wXrfxZeg', 'wXrLB7Zo', 'wXprtX71', 'wXrHhjtO',
                'wXrzwKBt', 'wXqz-RlY', 'wXq_fp7F', 'wXq7Po7n', 'wXq7fC73', 'wXqzvRSW', 'wXqf_PQ3', 'wXML2vCd'],
               ['wXv3aQrv', 'wXvn6ONM', 'wXvfaG0M', 'wXvf6LIr', 'wXvjJBg_', 'wXvL6M-0', 'wXv7p2cd', 'wXv3poSs',
                'wXvz5kUz', 'wXvrZz0_', 'wXv_YVCb', 'wXLfZtO6', 'wXvX5Hgi', 'wXvz3Ptg', 'wXvHJUU-', 'wXvr4fB7',
                'wXvnlWej', 'wXv_YUrK', 'wXv7Id05', 'wXv7IYOV', 'wXvfYfLo', 'wXv7Y3AV', 'wXvT4_pE', 'wXvPovRt'],
               ['wXoDui-2', 'wXoT9yTg', 'wXmTQKw1', 'wXormLxu', 'wXMX-NNQ', 'wXo7kUfB', 'wXon0rt_', 'wXozT-3V',
                'wXnvYjEc', 'wXnTn9D6', 'wXnLH7Cz', 'wXn_2HV_', 'wXnPGou9', 'wXnPVSNo', 'wXuG0sl3', 'wXnjAs7X',
                'wXm38mLv', 'wXmnj5Oh', 'wXmfjQ2h', 'wXm_wXuD', 'wXlPOUmy', 'wXcfHkmx', 'wXQ_62cx', 'wXUD3qyx']]

df1 = pd.DataFrame({"col1": post_token_list})
df2 = pd.DataFrame({"col2": tokens_list})

query_bounce = []

def query_bounce_checker(dataset_clicked, dataset_loaded, col1, col2):
    for i in dataset_clicked[col1]:
        for j in i:
            [query_bounce.append(k) for k in dataset_loaded[col2] if j in k]
    return query_bounce


query_bounce_checker(df1, df2, "col1", "col2")

ijk值用于访问和比较两个相关列的元素和子元素。速度对我来说是一个贡献因素,而这里编写的函数对于这种大小的数据集来说不够快。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-15 01:44:12

如果这真的是你想要的,这应该是相当快的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np

np.intersect1d(np.hstack(df1.col1),np.hstack(df2.col2))

输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
array(['wXmTQKw1', 'wXvnlWej'], dtype='<U8')
票数 0
EN

Stack Overflow用户

发布于 2021-06-15 01:23:13

我不确定这是不是你想要的。如果您只想检查df1中的哪些值也存在于df2中,可以将两个数据帧转换为数组,并使用np.in1d()来完成此操作。

试试这个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
array1 = np.array((','.join(df1['col1'].apply(lambda x: ','.join(x)))).split(','))
array2 = np.array((','.join(df2['col2'].apply(lambda x: ','.join(x)))).split(','))
print(array1[np.in1d(array1,array2)])

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
['wXmTQKw1' 'wXvnlWej']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67978673

复制
相关文章
Pandas 查找,丢弃列值唯一的列
数据清洗很重要,本文演示如何使用 Python Pandas 来查找和丢弃 DataFrame 中列值唯一的列,简言之,就是某列的数值除空值外,全都是一样的,比如:全0,全1,或者全部都是一样的字符串如:已支付,已支付,已支付…
萝 卜
2022/05/12
5.8K0
Pandas 查找,丢弃列值唯一的列
查找-散列查找
散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。查找时,根据这个确定的对应关系找到给定值key的映射f(key),若查找集合中存在这个记录,则必定在f(key)的位置上。
全栈程序员站长
2022/08/28
1.4K0
查找-散列查找
散列查找和哈希查找_散列检索
散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。建立了关键字与存储位置的映射关系,公式如下:
全栈程序员站长
2022/11/15
9000
Windows - Hash散列值抓取方法
LM Hash(LAN Manager Hash)其本质是 DES 加密。在 Windows 2008 及开始之后默认禁用的是 LM Hash。
渗透攻击红队
2020/11/25
1.9K0
Windows - Hash散列值抓取方法
散列查找
散列同顺序、链接和索引一样,是又一种数据存储方法。散列存储的方法是:以数据集合中的每个元素的关键字k为自变量,通过一种函数h(k)计算出函数值,把这个值用做一块连续存储空间(即数组或文件空间)中的元素存储位置(即下标),将该元素存储到这个下标位置上。散列存储中使用的函数h(k)被称为散列函数或哈希函数,它实现关键字到存储位置(地址)的映射(或称转换),h(k)被称为散列地址或哈希地址;使用的数组或文件空间是对数据集合进行散列存储的地址空间,所以被称为散列表或哈希表。在散列表上进行查找时,首先根据给定的关键字k,用与散列存储时使用的同一散列函数h(k)计算出散列地址,然后按此地址从散列表中取出对应的元素。
全栈程序员站长
2022/08/27
1.2K0
散列查找
[一起学RL] 策略迭代和值迭代
上一次分享了十个问题认识MDP,强化学习的目的是要找到一个策略π,使得累积回报的期望最大。这次和大家分享如何在MDP下做决策以及如何得到各个状态对应不同动作下的v值。如果想详细学习的可前往“参考”中的链接。
秋枫学习笔记
2022/09/19
1.6K0
SQL 求 3 列异值的 4 种方法
回想往事,其实有好些想法,可以深究,因没及时记录,事后就再也想不起来,白白浪费好多这样的机会。
Lenis
2022/03/31
2.6K0
SQL 求 3 列异值的 4 种方法
插值查找
3.int midIndex = low + (high - low) * (key -arr[low]) / (arr[high] - arr[low]); //插值索引
JusterZhu
2022/12/07
8770
插值查找
Excel查找值技巧,根据两个值来查找相对应的值
在Excel中,查找的需求多种多样,关键是看你怎么样搭配各种函数来实现了。如下图1所示,要根据代码和编号两个值来查找对应的数量。
fanjy
2023/09/15
3K0
Excel查找值技巧,根据两个值来查找相对应的值
删除列中的 NULL 值
今天接到一个群友的需求,有一张表的数据如图 1,他希望能通过 SQL 查询出图 2 的结果。
白日梦想家
2020/07/20
10K0
删除列中的 NULL 值
01:查找特定的值
01:查找特定的值 查看 提交 统计 1 #include<iostream> 2 using namespace std; 3 int a[10001]; 4 int main() 5 { 6 int n; 7 int ans; 8 cin>>n; 9 for(int i=1;i<=n;i++) 10 { 11 cin>>a[i]; 12 } 13 cin>>ans; 14 for(int j=1;j<
attack
2018/04/03
1.8K0
最快的 Hexo 博客搭建方法
使用 Cloud Studio ,就不需要再折腾 Hexo 环境,不需要再解决不同平台上的各种冲突,直接在 Cloud Studio 里面即可进行 Hexo 的写作和部署。
腾讯云 CODING
2019/09/16
1.2K0
最快的 Hexo 博客搭建方法
数据结构:图文详解 - 动态查找、静态查找、散列查找
对于二分查找存在一定的优 & 缺点,所以衍生出2种二分查找的变式方法:插值查找 & 斐波那契查找。具体如下:
Carson.Ho
2020/09/24
2.6K0
数据结构:图文详解 - 动态查找、静态查找、散列查找
php实现有序数组旋转后寻找最小值方法
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
子润先生
2021/07/13
3530
最快的 Hexo 博客搭建方法
使用 Cloud Studio ,就不需要再折腾 Hexo 环境,不需要再解决不同平台上的各种冲突,直接在 Cloud Studio 里面即可进行 Hexo 的写作和部署。
全栈程序员站长
2022/06/29
7960
最快的 Hexo 博客搭建方法
ORACLE列值合併
在SQL Server中合併列值能够使用For Xml Path,在Oracle中則能够使用wm_concat 或 ListAgg。
全栈程序员站长
2022/07/13
1.1K0
Excel公式技巧71:查找一列中有多少个值出现在另一列中
有时候,我们想要知道某列中有多少个值同时又出现在另一列中,例如下图1所示,列B中有一系列值,列D中有一系列值,哪些值既出现有列B中又出现在列D中。因为数据较少,不难看出,在列B中仅有2个值出现在列D中,即“完美Excel”和“Office”。
fanjy
2020/12/08
3.4K0
Excel公式技巧71:查找一列中有多少个值出现在另一列中
点击加载更多

相似问题

迭代列以查找特定值

12

迭代列的条件,以查找其他列的值

11

迭代熊猫系列/列的最快方法

24

使用值准则迭代置换的最快方法

32

迭代散列中的键的最快方法

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文