如何在pandas中过滤groupby对象

2024-06-09 21:19:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有过这样的经历

A  B
1  1
1  2
1  3
2  2
2  1 
3  2
3  3
3  4

我想提取B列不是升序的行

A B
2 2
2 1

我试过了

df.groupby("A").filter()...

但我要去提取

如果你有什么解决办法,请告诉我


Tags: dffilter经历groupby升序解决办法
2条回答

一种方法是使用^{}

df[df.groupby('A')['B'].transform(lambda x:not x.is_monotonic)]

输出:

   A  B
3  2  2
4  2  1

使用^{}^{}并按^{}比较至少一个负值和^{}并按^{}过滤:

df1 = df[df.groupby('A')['B'].transform(lambda x: x.diff().lt(0).any())]
print (df1)
   A  B
3  2  2
4  2  1

相关问题 更多 >