首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何仅检索列字段值比当前时间多7天的数据行?

如何仅检索列字段值比当前时间多7天的数据行?
EN

Stack Overflow用户
提问于 2022-03-29 13:09:41
回答 1查看 25关注 0票数 0

我正在尝试从熊猫数据框架中检索特定的行,其中列的日期正好比当前时间多7天。例如,目前的日期是2022-03-22.这是我的数据

代码语言:javascript
复制
        name      date              

0       Max     2022-03-24

1       Joe     2022-03-29

2       Moe     2022-04-03

现在我只想找回乔,因为他7天后才知道日期。我已经看到了一些解决方案之间使用,但这也将检索最大,如果检查所有7天。

而且,日期没有时间,只有年、月和日。这样做的原因是,我只想通知一个人一次,当日期是7天前。

我是熊猫新手,所以欢迎任何帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-30 05:18:25

这可能有点冗长,但我认为它能做你想做的事。

代码语言:javascript
复制
from datetime import datetime, timedelta
import pandas as pd

df = pd.DataFrame({'Id':['Max','Joe','Moe'],
'Source':['2022-03-24','2022-03-30','2022-04-06']
              })

df.Source = pd.to_datetime(df.Source)
df = df.set_index('Source')

def in7days(df):
    now = datetime.now()
    dt = now + timedelta(7)
    idx = df.index.get_loc(dt, method='nearest')
    td = (dt - df.index[idx]).days
    if td != 0:
        return("No entries found.")
    else:
        return(df.iloc[idx])

然后,如果调用in7days(df),将得到以下输出:

代码语言:javascript
复制
Id    Moe
Name: 2022-04-06 00:00:00, dtype: object

我更改了Moe的日期,以便从今天起7天后才能得到一个可行的例子。

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

https://stackoverflow.com/questions/71662671

复制
相关文章

相似问题

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