我有几分钟的数据帧可以追溯到几年(日期时间是指数)。我需要获得一组覆盖不规则(非连续)长日期列表的条形图。
对于每日酒吧,我可以这样做:
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')
有没有更好的方法来获取列表中每天的所有条形码而不是循环列表?提前谢谢。
答案 0 :(得分:1)
一种方法是根据索引
添加日期列df1m['date'] = pd.to_datetime(df1m.index.date)
然后在过滤时使用该列
datelist = ['20140101','20140205']
df1m[df1m['date'].isin(datelist)]