2

所以我有一个大熊猫数据框,其中包含大约两个月的信息,每秒一行信息。一次处理的信息太多,所以我想抓住具体的时间框架。以下代码将获取 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

那么我该怎么做呢?

4

1 回答 1

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)]
于 2013-05-02T15:11:39.423 回答