在DataFrame中抓取特定日期之间的选择

时间:2013-05-02 14:59:53

标签: python datetime pandas

所以我有一个大型的pandas 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进行此操作并且能够轻松完成此操作会很好。我知道大熊猫是有能力的,因为如果我的日期是索引而不是列,那很容易做,但它们不能成为索引,因为日期会重复,因此你会收到这个错误:

Exception: Reindexing only valid with uniquely valued Index objects

那我该怎么做呢?

1 个答案:

答案 0 :(得分:8)

您可以单独定义一个面具:

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)]