我有一个df看起来像这样。我想要做的是保持每个重复Order_Side中的第一个在一个组内。所以我想删除索引5,8,因为它重复并且索引为20,26。在每个 Var1组
中,Order_Side应该像1买入和1卖出一样交替我在stackoverflow上阅读了类似的问题并尝试了
df.loc[df['Order_Side'] != df['Order_Side'].shift()]
这会给我
Altough继续交替卖出和买入并保持重复价值的第一个。但它不在每个 Var1 GROUP
中因为我只需要在每个Var1组中交替销售和购买,而不是在不同组之间交替。当穿越组时,需要重置。
请看第一张照片中的索引28和34。 34应该保持,因为它现在是一个不同的组。它是8而不是7.因此它不应受交替要求的限制。然后在8组内,它需要再次交替。
答案 0 :(得分:1)
您可以引入另一个条件,允许任何行与上一行具有不同的Var1组。
cond1 = df['Order_Side'] != df['Order_Side'].shift()
cond2 = df['Var1'] != df['Var1'].shift()
df.loc[cond1 | cond2]