首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >查找不同数据帧中是否存在列值

查找不同数据帧中是否存在列值
EN

Stack Overflow用户
提问于 2019-08-25 17:49:29
回答 1查看 35关注 0票数 0

我有2个数据帧,其中包含用户的活动,其中user_id属于某个特定用户。根据一些条件,我需要在第二个dataframe上填充一个新列。下面是一个例子

df1是包含列user_id和date1的数据帧

代码语言:javascript
运行
AI代码解释
复制
user_id  date1
 1       2019-07-01
 2       2019-08-04
 1       2019-08-06
 3       2019-09-03

df2是另一个以user_id和date2为列的数据帧

代码语言:javascript
运行
AI代码解释
复制
user_id  date2
  1     2019-07-02
  1     2019-07-03
  2     2019-08-03
  3     2019-08-04

这两个数据帧具有不同的行数,并且对于每个用户,在两个数据帧中都存在多行。

对于df2中的每一行,需要根据来自df1的user_id的相等性和日期之间的不等性条件来填充列'Present_df1‘,假设为date2>date1

因此,对于df2中的每一行,如果user_id和date2>date1的组合得到满足,我们可以将其置为1。

已尝试以下方法,但似乎不起作用:

代码语言:javascript
运行
AI代码解释
复制
(df2.user_id.isin(df1.user_id) & df2.date2>df1.date1).astype(int)

我来自SQL背景,在那里似乎更容易可视化,但在熊猫中,我发现它有点难以概念化。合并选项会产生一个很大的笛卡尔积,因此不是一个好的思考方法

EN

回答 1

Stack Overflow用户

发布于 2019-08-25 19:12:01

请注意,对于df2中的特定user_id,df1中可以有多个行与匹配的user_id。

因此,它将决定这些行的所有或是否具有data1 < data2 (我假设为"any“情况)。

要执行您的任务,请运行:

代码语言:javascript
运行
AI代码解释
复制
df2['Present_df1'] = df2.apply(lambda row:
    df1[df1.user_id.eq(row.user_id)]\
    .date1.lt(row.date2).any().astype(int), axis=1)

结果是:

代码语言:javascript
运行
AI代码解释
复制
   user_id      date2  Present_df1
0        1 2019-07-02            1
1        1 2019-07-03            1
2        2 2019-08-03            0
3        3 2019-08-04            0

如果您改变主意,认为df1中所有与匹配的行都应该具有更早的日期,请将any()更改为()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57648384

复制
相关文章
查找oracle数据库表中是否存在系统关键字
今天在工程中遇到“ORA-01747: user.table.column, table.column 或列说明无效”的报错情况,查了一下是由于数据库列名起的不好引起的,名字用到了数据库的关键字。
西门呀在吹雪
2020/11/09
1.1K0
Pandas 查找,丢弃列值唯一的列
数据清洗很重要,本文演示如何使用 Python Pandas 来查找和丢弃 DataFrame 中列值唯一的列,简言之,就是某列的数值除空值外,全都是一样的,比如:全0,全1,或者全部都是一样的字符串如:已支付,已支付,已支付…
萝 卜
2022/05/12
5.9K0
Pandas 查找,丢弃列值唯一的列
SQL查找是否"存在",别再 count 了!
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的count。
终码一生
2022/04/14
4040
SQL查找是否 "存在",别再count了!
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要**SELECT count(*) **呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的count
搜云库技术团队
2021/08/20
4610
SQL查找是否"存在",别再count了!
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/08/29
4810
SQL查找是否"存在",别再count了!
SQL 查找是否"存在",别再 count 了!
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的count
程序员小猿
2021/07/29
4120
SQL查找是否"存在",别再count了!
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*)呢?
搜云库技术团队
2022/05/24
4340
SQL查找是否"存在",别再count了!
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?
民工哥
2020/09/15
4690
SQL查找是否"存在",别再count了!
SQL查找是否"存在",别再count了!
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的count
Java小咖秀
2022/09/23
4130
在Excel里,如何查找A列的数据是否在D列到G列里
Excel数据查找,相信多数的同学都不陌生,我们经常会使用vlookup等各类查找函数,进行数据的匹配查找。
matinal
2023/10/13
2580
在Excel里,如何查找A列的数据是否在D列到G列里
MFC查找指定文件是否存在,PathFileExists 函数[通俗易懂]
PathFileExists函数参数传入的要包含文件名(含文件格式)。 存在该文件,则返回TRUE, 相反,返回FALSE. 调用函数,传参
全栈程序员站长
2022/09/14
2.2K0
查找-散列查找
散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。查找时,根据这个确定的对应关系找到给定值key的映射f(key),若查找集合中存在这个记录,则必定在f(key)的位置上。
全栈程序员站长
2022/08/28
1.4K0
查找-散列查找
Linux下通过grep查找指定的进程是否存在
在程序中可以使用该方法监控指定的程序是否在运行,如果异常退出,可以重新启动指定程序或者系统。
DS小龙哥
2022/01/12
4.4K0
Linux下通过grep查找指定的进程是否存在
php检测值是否存在二维数组
本文为仙士可原创文章,转载无需和我联系,但请注明来自仙士可博客www.php20.cn
仙士可
2019/12/19
2.1K0
散列查找和哈希查找_散列检索
散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。建立了关键字与存储位置的映射关系,公式如下:
全栈程序员站长
2022/11/15
9070
面试题,如何在千万级的数据中判断一个值是否存在?
当你看到这个标题的时候,你也许会想我可以使用hashmap之类的来存储值,然后get就是了。又或者把数据存在数据库里然后去判断就可以了。
ImportSource
2019/05/06
4.3K0
面试题,如何在千万级的数据中判断一个值是否存在?
数据结构:图文详解 - 动态查找、静态查找、散列查找
对于二分查找存在一定的优 & 缺点,所以衍生出2种二分查找的变式方法:插值查找 & 斐波那契查找。具体如下:
Carson.Ho
2020/09/24
2.6K0
数据结构:图文详解 - 动态查找、静态查找、散列查找
散列查找
散列同顺序、链接和索引一样,是又一种数据存储方法。散列存储的方法是:以数据集合中的每个元素的关键字k为自变量,通过一种函数h(k)计算出函数值,把这个值用做一块连续存储空间(即数组或文件空间)中的元素存储位置(即下标),将该元素存储到这个下标位置上。散列存储中使用的函数h(k)被称为散列函数或哈希函数,它实现关键字到存储位置(地址)的映射(或称转换),h(k)被称为散列地址或哈希地址;使用的数组或文件空间是对数据集合进行散列存储的地址空间,所以被称为散列表或哈希表。在散列表上进行查找时,首先根据给定的关键字k,用与散列存储时使用的同一散列函数h(k)计算出散列地址,然后按此地址从散列表中取出对应的元素。
全栈程序员站长
2022/08/27
1.2K0
散列查找
删除列中的 NULL 值
今天接到一个群友的需求,有一张表的数据如图 1,他希望能通过 SQL 查询出图 2 的结果。
白日梦想家
2020/07/20
10.1K0
删除列中的 NULL 值
点击加载更多

相似问题

查找列中是否存在值

11

查找两列中是否存在值

20

在数据帧中查找列值

220

根据不同列的值对数据帧执行查找

234

查找数据框中是否存在列

537
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文