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

Rya*_*axe 2 python datetime pandas

所以我有一个大型的pandas DataFrame,它包含大约两个月的信息,每秒有一行信息.方法太多,无法立即处理,所以我想抓住具体的时间表.以下代码将在2012年2月5日之前获取所有内容:

sunflower[sunflower['time'] < '2012-02-05']
Run Code Online (Sandbox Code Playgroud)

我想做相当于这个:

sunflower['2012-02-01' < sunflower['time'] < '2012-02-05']
Run Code Online (Sandbox Code Playgroud)

但这是不允许的.现在我可以用这两行来做到这一点:

step1 = sunflower[sunflower['time'] < '2012-02-05']
data = step1[step1['time'] > '2012-02-01']
Run Code Online (Sandbox Code Playgroud)

但是我必须使用20个不同的DataFrame进行多次,并且能够轻松地做到这一点会很好.我知道pandas是有能力的,因为如果我的日期是索引而不是列,那很容易做到,但它们不能成为索引,因为日期会重复,因此您会收到此错误:

Exception: Reindexing only valid with uniquely valued Index objects
Run Code Online (Sandbox Code Playgroud)

那我该怎么做呢?

qua*_*qua 8

您可以单独定义一个掩码:

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

或者在一行中:

df_masked = df[(df.b > -.5) & (df.b < .5)]
Run Code Online (Sandbox Code Playgroud)