根据条件保持排行和下一个-熊猫

时间:2018-11-13 17:32:47

标签: pandas

我需要清理类似于以下内容的数据集:

https://i.stack.imgur.com/yMjuy.png

预期结果如下:

https://i.stack.imgur.com/QFJHS.png

换句话说,我需要将(1)具有“ action”的所有行保留在“ ACTION”列中,并且将保留在紧邻的下一行-(2)如果下一行具有“结果”在该列中。 我已经尝试了.shift()的几种组合,但是没有用。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

  3.123
  3.100

输出:

df.assign(step=df['Action'].eq('action').cumsum())\
  .drop_duplicates(subset=['Action','step'], keep='first')\
  .groupby('step')\
  .filter(lambda x: x.step.count()==2)