在DataFrame中的特定日期之间进行选择

发布于 2021-01-29 15:03:59

所以我有一个大熊猫DataFrame,其中包含大约两个月的信息,每秒有一行信息。太多信息无法同时处理,因此我想抓住特定的时间范围。以下代码将在2012年2月5日之前抓取所有内容:

sunflower[sunflower['time'] < '2012-02-05']

我想做与此等效:

sunflower['2012-02-01' < sunflower['time'] < '2012-02-05']

但这是不允许的。现在,我可以使用以下两行来完成此操作:

step1 = sunflower[sunflower['time'] < '2012-02-05']
data = step1[step1['time'] > '2012-02-01']

但是我必须使用20个不同的DataFrame和许多次来执行此操作,并且能够轻松地执行此操作会很好。我知道pandas可以做到这一点,因为如果我的日期是索引而不是列,这很容易做到,但是它们不能成为索引,因为日期重复了,因此您会收到此错误:

Exception: Reindexing only valid with uniquely valued Index objects

那我该怎么做呢?

关注者
0
被浏览
108
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以单独定义一个遮罩:

    df = DataFrame('a': np.random.randn(100), 'b':np.random.randn(100)})
    mask = (df.b > -.5) & (df.b < .5)
    df_masked = df[mask]
    

    或一行:

    df_masked = df[(df.b > -.5) & (df.b < .5)]
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看