pandas:按非连续日期列表过滤日内df

时间:2014-07-31 09:12:06

标签: python pandas

我有几分钟的数据帧可以追溯到几年(日期时间是指数)。我需要获得一组覆盖不规则(非连续)长日期列表的条形图。

对于每日酒吧,我可以这样做:

datelist = ['20140101','20140205']
dfFiltered = df[df.index.isin(datelist)]

然而,如果我在1分钟的条形数据上尝试,它只给我时间00:00:00的条形图,例如在这种情况下,它为20140101 00:00:00和20140205 00:00:00提供了两个栏。

我的实际来源df看起来像:

df1m = pd.DataFrame(index=pd.date_range('20100101', '20140730', freq='1min'),
                    data={'open':3, 'high':4, 'low':1, 'close':2}
                   ).between_time('00:00:00', '07:00:00')

有没有更好的方法来获取列表中每天的所有条形码而不是循环列表?提前谢谢。

1 个答案:

答案 0 :(得分:1)

一种方法是根据索引

添加日期列
df1m['date'] = pd.to_datetime(df1m.index.date)

然后在过滤时使用该列

datelist = ['20140101','20140205']
df1m[df1m['date'].isin(datelist)]