如何在熊猫数据框中过滤前后的行

时间:2018-11-03 01:11:55

标签: python python-3.x pandas

我有这个whol数据框,其中有这些标记和未标记的行, 我想过滤出标记行之前和之后的行,也需要标记行,

所以我的数据是

index            DateTime       A1   A2   A4        AMS  ID          flCol
16610745    2011-01-03T13:15:00 130 122 368010037   128 003669730   notflagged
16610745    2011-01-03T13:15:00 130 122 368010037   128 003669730   notflagged
16610747    2011-01-03T13:15:59 112 103 368010037   128 003669730   notflagged
16610749    2011-01-03T13:17:00 95  90  368010037   128 003669730   flagged
16610751    2011-01-03T13:18:00 75  67  368010037   128 003669730   notflagged
16610753    2011-01-03T13:18:59 42  33  368010037   128 003669730   notflagged
16610755    2011-01-03T13:20:00 14  7   368010037   128 003669794   notflagged

我只需要这样,标记前的点,标记后的点和标记的点?

   16610747 2011-01-03T13:15:59 112 103 368010037   128 003669730   notflagged
   16610749 2011-01-03T13:17:00 95  90  368010037   128 003669730   flagged
   16610751 2011-01-03T13:18:00 75  67  368010037   128 003669730   notflagged

我需要熊猫数据框中的完整行

1 个答案:

答案 0 :(得分:2)

您可以在列'flCol'和mask上创建所有条件的shift,以查找之前或之后的行

mask = ( (df['flCol'] == 'flagged')|
         (df['flCol'].shift(1) == 'flagged')|
         (df['flCol'].shift(-1) == 'flagged') )

然后df[mask]应该包含您想要的数据