繁体   English   中英

如何在多索引数据框上过滤日期

[英]How to filter dates on multiindex dataframe

我正在寻找一种方法来按星期几和/或选定日期过滤多索引数据框,如下所示。 假设我需要

  • select only mondays的查询;
  • 我要select all days except monday and friday另一个查询;
  • 第三个查询,用于选择日期输入列表中的数据,例如select all dates in ['2015-05-14', '2015-05-21', '2015-05-22']
  • 最后是结合星期几和日期列表进行选择的查询,例如select all dates in ['2015-05-14', '2015-05-21', '2015-05-22'] and thursdays

怎么做呢?

                Col1        Col2     Col3    Col4
Date        Two 
2015-05-14  10   81.370003  6.11282  39.753  44.950001
            11   80.419998  6.03380  39.289  44.750000
            C3   80.879997  6.00746  41.249  44.360001
2015-05-19   3   80.629997  6.10465  41.047  40.980000
            S9   80.550003  6.14370  41.636  42.790001
2015-05-21  19   80.480003  6.16096  42.137  43.680000
2015-05-22  C3   80.540001  6.13916  42.179  43.490002

如果您使用Date作为datetime类型,则可以使用dayofweek来获取星期几并基于该日期进行查询。

仅选择星期一:

df[df.index.get_level_values('Date').dayofweek == 0]

选择星期一和星期五以外的日期:

import numpy as np
df[np.in1d(df.index.get_level_values('Date').dayofweek, [1,2,3,5,6])]

#                    Col1      Col2   Col3       Col4
#      Date Two             
#2015-05-14 10  81.370003   6.11282 39.753  44.950001
#           11  80.419998   6.03380 39.289  44.750000
#           C3  80.879997   6.00746 41.249  44.360001
#2015-05-19 3   80.629997   6.10465 41.047  40.980000
#           S9  80.550003   6.14370 41.636  42.790001
#2015-05-21 19  80.480003   6.16096 42.137  43.680000

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM