gpt4 book ai didi

python - 筛选至少 1 行满足条件的 GroupBy 对象

转载 作者:太空狗 更新时间:2023-10-30 00:58:29 24 4
gpt4 key购买 nike

假设有这个 test_df:

test_df = pd.DataFrame({'Category': ['P', 'P', 'P', 'Q', 'Q', "Q"],
'Subcategory' : ['A', 'B', 'C', 'C', 'A', 'B'],
'Value' : [2.0, 5., 8., 1., 2., 1.]})

这样做会得到:

test_df.groupby(['Category', 'Subcategory'])['Value'].sum()
# Output is this
Category Subcategory
P A 2.0
B 5.0
C 8.0
Q A 2.0
B 1.0
C 1.0

我想过滤子类别中至少有一个值大于或等于 3 的类别。在当前 test_df 中的意思是,Q 将从过滤器中排除,因为它的行都不大于或等于 3 . 但是,如果其中一行是 5,则 Q 将保留在过滤器中。

我试过使用以下内容,但它过滤掉了类别“P”中的“A”子类别。

test_df_grouped = test_df.groupby(['Category', 'Subcategory'])

test_df_grouped.filter(lambda x: (x['Value'] > 2).any()).groupby(['Category', 'Subcategory'])['Value'].sum()

提前致谢!

最佳答案

使用loc:

s = test_df.groupby(['Category', 'Subcategory'])['Value'].sum()
s.loc[s[s.ge(3)].index.get_level_values(0).unique()].reset_index()

  Category Subcategory  Value
0 P A 2.0
1 P B 5.0
2 P C 8.0

关于python - 筛选至少 1 行满足条件的 GroupBy 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51998131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com