如果列值在任何地方减少,则删除行集

时间:2020-06-29 20:59:29

标签: python python-3.x pandas dataframe

我正在尝试根据特定列中的值删除行集,该行在任何时候都会减少。请假设数据框中有更多的行和列:

date     var       col_a    col_b    col_c ... 
1/02/20  id_1      3        0        1
1/03/20  id_1      4        1        1
1/04/20  id_1      3        1        2
1/02/20  id_2      0        0        0
1/03/20  id_2      1        2        0
1/04/20  id_2      1        2        0
.
.
.

因此,对于id_1col_a从3-> 4-> 3减小,我想返回此值:

date     var       col_a    col_b    col_c ... 
1/02/20  id_2      0        0        0
1/03/20  id_2      1        2        0
1/04/20  id_2      1        2        0
.
.
.

因此值可以增加然后减少,但是在任何时候如果减少,我都希望删除var的整个行集。我当时正在调查is_monotonic,以查看各列是否在增加/减少,但是不确定如何组合成一个groupby。

1 个答案:

答案 0 :(得分:0)

您可以尝试:

set recip = oResponse.Recipients.Add("example@domain.com")
recip.Type = olCC

输出:

s = (df.iloc[:,1:]
   .groupby('var').diff()
   .lt(0).any(1)
   .groupby(df['var']).transform('max')
)

df[~s]