您的位置: 网站首页> Pandas教程> 当前文章
pandas分组过滤filter函数
老董-我爱我家房产SEO2022-03-10176围观,101赞
pandas分组操作在实际工作中应用非常广泛,之前的文章介绍过pandas的分组聚合、分组使用agg函数、分组转换transform,本文介绍pandas的分组过滤操作,如果想系统的接触pandas分组后的各类操作可以看pandas分组操作系列详解。
无论是agg还是transform他们是对分组后的每组数据进行运算,而pandas分组过滤说是对分组后对组进行筛选,符合条件的组才进入到结果数据,不符合条件的组会被舍弃。分组过滤用filter函数实现。
我们来看DataFrameGroupBy对象filter函数的官方文档写法
DataFrameGroupBy.filter(func, dropna=True, *args, **kwargs)
其中filter函数参数func是自定义函数,func函数的参数为分组后的每个子组DataFrame本身,看下官方文档的例子:
# -*- coding:UTF-8 -*- import pandas as pd df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar', 'foo', 'bar'], 'B' : [1, 2, 3, 4, 5, 6], 'C' : [2.0, 5., 8., 1., 2., 9.]}) grouped = df.groupby('A') df_res = grouped.filter(lambda x: x['B'].mean() > 3) print(df_res)
A B C 1 bar 2 5.0 3 bar 4 1.0 5 bar 6 9.0
其实filter函数比较简单,为了更熟悉一点,我们再看1个例子来加深理解。
# -*- coding:UTF-8 -*- import pandas as pd df = pd.DataFrame({'city' : ['bj', 'bj', 'nj', 'nj', 'tj', 'tj'], 'quyu' : ['chaoyang', 'haidian', 'jiangning', 'gulou', 'nankai', 'tanggu'], 'GDP' : [1000, 800, 700, 600, 500, 400]}) grouped = df.groupby('city') df_res = grouped.filter(lambda x: x['GDP'].max() > 600) print(df_res)
city quyu GDP 0 bj chaoyang 1000 1 bj haidian 800 2 nj jiangning 700 3 nj gulou 600
本文就此结束,感谢IT人士的关注pandas分组过滤filter函数,本文合作企业直达:更多推荐。
很赞哦!
python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群
相关文章
文章评论
-
pandas分组过滤filter函数文章写得不错,值得赞赏