小编典典

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

python

所以我有一个大熊猫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

那我该怎么做呢?


阅读 399

收藏
2021-01-20

共1个答案

小编典典

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

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)]
2021-01-20