使用时间列表子集数据框

时间:2017-06-05 18:32:55

标签: python pandas dataframe time-series subset

我的df时间索引的结构如下:

                     Sensor  UnitNo
Time                               
2016-07-28 18:34:44    19.0     1.0
2016-07-28 19:27:39    19.0     1.0
2016-07-20 20:45:39    19.0     1.0
2016-07-20 23:05:29    19.0     1.0
2016-07-21 01:23:30    19.0     1.0
...

我想用带有时间索引和布尔列的系列对此df进行子集化:

    Time
2016-07-28    False
2016-07-21    False
2016-07-20     True

我想为系列中True日期的原始df进行子集化:

                     Sensor  UnitNo
Time                               
2016-07-20 20:45:39    19.0     1.0
2016-07-20 23:05:29    19.0     1.0

更新 道歉,当我第一次问这个问题时,我认为我可以很容易地将系列转换成一个列表,但我发现这个问题有几个原因。所以,我更新了上面的问题,以便类似于我的数据的当前状态。任何帮助,将不胜感激!提前谢谢。

2 个答案:

答案 0 :(得分:0)

尝试str.contains

List=['2016-07-28','2016-07-20']
List1=('|'.join(List))
df[df.index.to_series().str.contains(List1)]



                       Sensor  UnitNo
Time                               
2016-07-28 18:34:44      19       1
2016-07-28 19:27:39      19       1
2016-07-20 20:45:39      19       1
2016-07-20 23:05:29      19       1

答案 1 :(得分:0)

使用.loc

df.loc[['2016-07-28', '2016-07-20'],:]

更新

如果直接使用布尔值Series作为Dataframe的布尔索引,它是否有用?

df.loc[bool_series, :]