所以我有一个大熊猫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
那我该怎么做呢?
您可以单独定义一个遮罩:
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)]