是否可以在 Dataframe 中使用 Pandas Overlap?

2023-12-02

Python 3.7, 熊猫25

我有一个 Pandas Dataframe,其中包含开始日期和结束日期的列。我正在寻找与我的变量范围重叠的范围。在不冗长并用 and/or 组成一系列大于/小于语句来过滤出我需要的行的情况下,我想使用某种间隔“重叠”。 Pandas 似乎有这个功能:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Interval.overlaps.html

以下测试有效:

range1 = pd.Interval(pd.Timestamp('2017-01-01 00:00:00'),pd.Timestamp('2018-01-01 00:00:00'),closed='both')
range2 = pd.Interval(pd.Timestamp('2016-01-01 00:00:00'),pd.Timestamp('2017-01-01 00:00:00'),closed='both')
range1.overlaps(range2)

但是,当我将其应用到数据框列时,它却没有。我不确定我的语法是否有问题,或者这是否根本不能应用于数据帧。以下是我尝试过的一些方法(并收到了一系列错误):

start_range = '2017-07-01 00:00:00'
end_current = '2019-07-01 00:00:00'
reporttest_range = pd.Interval(pd.Timestamp(start_range),pd.Timestamp(end_current),closed='both')
reporttest_filter = my_dataframe[my_dataframe['startdate']['enddate'].overlaps(reporttest_range)]
reporttest_filter = my_dataframe[my_dataframe['startdate','enddate'].overlaps(reporttest_range)]
reporttest_filter = my_dataframe[(my_dataframe['startdate','enddate']).overlaps(reporttest_range)]
reporttest_filter = my_dataframe.filter(['startdate','enddate']).overlaps(reporttest_range)
reporttest_filter = my_dataframe.filter['startdate','enddate'].overlaps(reporttest_range)
reporttest_filter = my_dataframe.filter(['startdate','enddate']).overlaps(reporttest_range)
print(reporttest_filter)

有人可以指出我一种有效的方法来实现这一目标吗?

根据要求,数据帧输出如下所示:

      record    startdate    enddate
0         99    2017-07-01 2018-06-30
1        280    2018-08-01 2021-07-31
2        100    2017-07-01 2018-06-30
3        281    2017-07-01 2018-06-30

你需要创建IntervalIndex from df.startdate and df.enddate并使用overlaps反对reporttest_range。您的示例返回全部 true,因此我添加行False case.

Sample df:   

   record  startdate    enddate
0    9931 2017-07-01 2018-06-30
1   28075 2018-08-01 2021-07-31
2   10042 2017-07-01 2018-06-30
3   28108 2017-07-01 2018-06-30
4   28109 2016-07-01 2016-12-30
5   28111 2017-07-02 2018-09-30

iix = pd.IntervalIndex.from_arrays(df.startdate, df.enddate, closed='both')
iix.overlaps(reporttest_range)

Out[400]: array([ True,  True,  True,  True, False,  True])

用它来仅选择重叠的行

df[iix.overlaps(reporttest_range)]

Out[401]:
   record  startdate    enddate
0    9931 2017-07-01 2018-06-30
1   28075 2018-08-01 2021-07-31
2   10042 2017-07-01 2018-06-30
3   28108 2017-07-01 2018-06-30
5   28111 2017-07-02 2018-09-30
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以在 Dataframe 中使用 Pandas Overlap? 的相关文章

随机推荐

  • PHP DOM 和单引号

    有没有办法告诉 DOMDocument 对属性使用单引号而不是双引号 不 DOMDocument 是一个面向数据的 XML 访问 API 它可以按照自己的意愿序列化文档 没有 gt save 标志http www php net manua
  • 在可移动设备/可移动存储上使用FolderBrowserDialog

    我正在开发一个简单的复制工具来从数码相机复制文件 我已经编写了文件复制代码 一切都连接良好 我遇到的问题似乎与FolderBrowserDialog 有关 在Vista中 我还没有检查XP 我可以浏览到相机上的目录 但是 FolderBro
  • 使用 JPA 或数据库内部进行级联删除/更新?

    性能是关键 是在数据库内部级联删除 更新更好还是让 Hibernate JPA 来处理它更好 如果级联位于 DBMS 内部 这会影响查询数据的能力吗 如果这很重要的话 我正在使用 HSQLDB 在级联更新的情况下 如果数据库中有外键约束 则
  • 我可以从 dacpac 生成部署脚本吗

    我有一个 dacpac 文件 该文件由 MSBuild 调用并发布到 QA 数据库以进行测试 此发布失败 我从他们那里得到的错误是一条通用的 发生错误 消息 我希望能够从 dacpac 生成部署脚本并浏览它以查看问题发生的位置 并希望教他们
  • 在 Visual Studio 中启用 SSL - 不提示安装证书

    我正在尝试按照这篇文章中的说明进行操作 http www codeproject com Tips 766918 Visual Studio Use HTTPS SSL On Web Application Pro 系统没有提示我消息 您想
  • JavaScript 日期比较不等于[重复]

    这个问题在这里已经有答案了 我尝试寻找有类似问题的人 但没有找到任何东西 我在 JavaScript 中有两个日期 都设置为相同的值 相等测试在 上失败 但 gt 和 下面是我正在使用的代码 var startDate new Date 2
  • 安全性:有没有办法使用对 char[] 的直接引用而不是字符串?

    前言 这可能是一个巨大的菜鸟错误 我团队中的所有开发人员都对 Java 101 有点模糊 所以如果我们不担心任何事情 请告诉我 具体来说 担心在 permgen 中缓存的字符串文字 我们有一个简单的登录页面 基本上如下所示 支持 Bean
  • Hive 1.2 Metastore 服务在配置为 S3 存储而不是 HDFS 后无法启动

    我有一个处于独立模式的 Apache Spark Cluster 2 2 0 到目前为止 我们正在使用 HDFS 来存储 parquet 文件 我正在使用 Apache Hive 1 2 的 Hive Metastore 服务通过 Thri
  • 如何将 x-y 位置转换为等距平铺的平铺 x-y?

    我可以根据公式绘制我的地图绘制等距游戏世界 但是我怎样才能根据它在地图图层 div 上的位置找到一个图块的 x y 呢 为了清楚起见 我的图块的左侧样式是 1036px 顶部样式是 865px 根据这些CSS属性如何根据地图找到图块的x和y
  • m 正则表达式模式修饰符

    subject SIverygood n SIverygood n pattern SI m preg match all pattern subject matches2 PREG OFFSET CAPTURE var dump matc
  • jQuery .get 用于非 https,在用户脚本中

    我在我的网站上制作了一个脚本来访问不同网站上的表格 但是 另一个网站是 HTTP 因此 chrome 告诉我 此请求已被阻止 内容必须通过 HTTPS 提供 get http www kanjidamage com kanji null f
  • 在名称为“appServlet”的 DispatcherServlet 中未找到带有 URI [/myappname/] 的 HTTP 请求的映射

    我有错误No mapping found for HTTP request with URI myappname in DispatcherServlet with name appServlet 当我在 JBoss 上开始我的项目时 这是
  • com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障

    我正在努力让我的数据库与我的 Java 程序对话 有人可以给我一个使用 JDBC 的快速但肮脏的示例程序吗 我遇到了一个相当惊人的错误 Exception in thread main com mysql jdbc exceptions j
  • 使用 .htaccess 隐藏扩展名和变量

    如何隐藏文件的扩展名和GET变量通过 htaccess在一行 此代码不起作用 RewriteRule 1 php L RewriteRule file 0 9 php some directory files php id 1 L Exam
  • ReactJs 产品详细信息页面

    我有一个API与工作Bearer token 我列出了所有三种产品API在产品页面上 我希望能够在我创建的产品项目详细信息页面上单击任何项 目并显示信息 我已成功创建路线 并且可以单击并打开相关页面 现在的问题是使用以下命令在项目详细信息页
  • iOS 和 Android 上的 LLVM 版本

    如何找出 Android NDK 和 Apple Xcode 使用的是哪个 LLVM 版本 检查clang version从 Android NDK r15c 我得到 Android clang version 5 0 300080 bas
  • SQL Server 中多对多层次结构的数据结构

    我的系统中已有以下数据结构 ItemDetails ID Name 1 XXX 2 YYY 3 ZZZ 4 TTT 5 UUU 6 WWW 层次结构位于单独的表中 具有多对多关系 ItemHierarchy ParentCode Child
  • 了解 Android 中的 AudioTrack 断言

    在我的 Android 应用程序中 我使用 AudioTrack API 输出从 RFCOMM 蓝牙连接接收到的音频字节 音频按预期播放并且非常清晰 但是 由于 AudioTrackShared cpp 中的以下断言 应用程序偶尔会崩溃 s
  • 返回一个字符串拆分为 n 个字符串时所有可能的组合

    我在 stackoverflow 上搜索了相关内容 但找不到方法 可能涉及到itertool 我想找到分割字符串的所有可能结果 比如字符串thisisateststring into n 长度相等或不等 无关紧要 两者都应该包含 字符串 例
  • 是否可以在 Dataframe 中使用 Pandas Overlap?

    Python 3 7 熊猫25 我有一个 Pandas Dataframe 其中包含开始日期和结束日期的列 我正在寻找与我的变量范围重叠的范围 在不冗长并用 and or 组成一系列大于 小于语句来过滤出我需要的行的情况下 我想使用某种间隔