如何检查两个日期是否介于代表开始日期和结束日期的数据框的两列之间

编程入门 行业动态 更新时间:2024-10-28 04:27:58
本文介绍了如何检查两个日期是否介于代表开始日期和结束日期的数据框的两列之间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试检查我的开始日期和结束日期是否在数据框中的给定StartDate和EndDate之间

I am trying to check if my start date and end date falls between the given StartDate and EndDate in my dataframe

DataFrame看起来像

DataFrame looks like

TermYear Term StartDate EndDate 2017 1 2017-01-10 2017-03-31 2017 2 2017-04-10 2017-06-30 2017 3 2017-07-24 2017-09-18 2017 4 2017-09-30 2017-12-04

我正在尝试获取给定日期即

I am trying to fetch the term and TermYear when my given date i.e.

Start Date: '2017-01-24' End Date: '2017-09-29'

在数据帧的开始日期和结束日期之间,应该获取多个行有什么想法吗?我尝试过

Lies between start and end date of dataframe it should fetch multiple rows any ideas? I have tried

lowerDate = np.datetime64('2017-07-24') upperDate = np.datetime64('2017-07-26') termDates = termDates[(termDates.StartDate >= lowerDate) & (termDates.EndDate <= upperDate) ][['Term', 'TermYear']]

但是它返回了空的数据框

But it returns me empty dataframe

预期输出:

Term TermYear 2017 1 2017 2 2017 3

推荐答案

使用

In [1820]: df[(df.StartDate <= StartDate) & (df.EndDate >= EndDate)] Out[1820]: TermYear Term StartDate EndDate 2 2017 3 2017-07-24 2017-09-18

对于特定列

In [1826]: df.loc[(df.StartDate<=StartDate) & (df.EndDate>=EndDate), ['Term', 'TermYear']] Out[1826]: Term TermYear 2 3 2017

在哪里

In [1821]: df Out[1821]: TermYear Term StartDate EndDate 0 2017 1 2017-01-10 2017-03-31 1 2017 2 2017-04-10 2017-06-30 2 2017 3 2017-07-24 2017-09-18 3 2017 4 2017-09-30 2017-12-04 In [1822]: StartDate Out[1822]: '2017-07-24' In [1823]: EndDate Out[1823]: '2017-08-29' In [1835]: df.dtypes Out[1835]: TermYear int64 Term int64 StartDate datetime64[ns] EndDate datetime64[ns] dtype: object

更多推荐

如何检查两个日期是否介于代表开始日期和结束日期的数据框的两列之间

本文发布于:2023-10-30 12:29:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1542845.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:日期   两个   结束   代表   数据

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!