首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按适用于索引的条件过滤行

按适用于索引的条件过滤行
EN

Stack Overflow用户
提问于 2019-02-19 18:54:28
回答 1查看 29关注 0票数 0

我有一个以日期为索引的DataFrame:

代码语言:javascript
复制
            VL
2018-02-05  101.56093
2018-12-31  95.87728
2019-01-04  96.29820
2019-01-11  97.23475
2019-01-18  98.39828
2019-01-25  98.66896
2019-01-31  99.12407
2019-02-01  99.13224
2019-02-08  99.06382
2019-02-15  99.79966    

我需要对行进行筛选,这样,如果带有** D-7 的行存在于DataFrame中,则对于日期为的每一行,都会保留它。

示例:

  • 2019-02-15将保留下来,因为2019-02-08存在
  • 2019-01-31将被过滤,因为2019-01-24不存在。

我已经使用循环实现了这一点,但是我想知道是否有一种更面向熊猫的方法来进行这种过滤。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-19 19:04:33

你可以使用pd.Timedeltaisin

代码语言:javascript
复制
df[(df['date'] - pd.Timedelta(days=7)).isin(df['date'])]

输出:

代码语言:javascript
复制
        date        VL
3 2019-01-11  97.23475
4 2019-01-18  98.39828
5 2019-01-25  98.66896
7 2019-02-01  99.13224
8 2019-02-08  99.06382
9 2019-02-15  99.79966

如果日期在索引中,请使用以下命令:

代码语言:javascript
复制
df[(df.index - pd.Timedelta(days=7)).isin(df.index)]

输出:

代码语言:javascript
复制
                  VL
date                
2019-01-11  97.23475
2019-01-18  98.39828
2019-01-25  98.66896
2019-02-01  99.13224
2019-02-08  99.06382
2019-02-15  99.79966
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54773144

复制
相关文章

相似问题

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