通过聚合函数过滤Pandas Dataframe ?

0sgqnhkj  于 2022-11-20  发布在  其他
关注(0)|答案(2)|浏览(120)

Dataframe 如下所示:

STORE    PRODUCT    INVENTORY
1   store1      a           1
2   store1      b           0
3   store2      a           0
4   store2      b           0
5   store3      a           1
6   store3      b           1

我想过滤这个,这样它只显示我的商店与total inventory > 0的意义上的结果将如下,因为store2有一个总库存为0。

STORE    PRODUCT    INVENTORY
1   store1      a           1
2   store1      b           0
5   store3      a           1
6   store3      b           1

我该怎么做?

oprakyz7

oprakyz71#

您可以尝试:

df.loc[(df.groupby('STORE')['INVENTORY'].transform(sum) > 0)]

    STORE PRODUCT  INVENTORY
1  store1       a          1
2  store1       b          0
5  store3       a          1
6  store3       b          1
llycmphe

llycmphe2#

我们可以像下面这样使用filter

df.groupby('STORE').filter(lambda x: x['INVENTORY'].sum()>0)

其给出了

STORE   PRODUCT INVENTORY
1   store1  a   1
2   store1  b   0
5   store3  a   1
6   store3  b   1

数据

import pandas as pd
import io

text = """
    STORE    PRODUCT    INVENTORY
1   store1      a           1
2   store1      b           0
3   store2      a           0
4   store2      b           0
5   store3      a           1
6   store3      b           1
"""
df = pd.read_csv(io.StringIO(text), sep = '\s+')

相关问题