一.在处理pandas表格数据时,有时会遇到这样的问题:按照某一列聚合后,判断另一列是否出现唯一值,比如安泰杯--跨境电商比赛中,某个商人的ID如果出现在两个国家(xx和yy),则要剔除这样的数据,这就需要我们按照商人ID进行groupby,然后判断每个商人所属的国家是否值唯一,不唯一则剔除。

def unique_num(x):

  return len(np.unique(x))  #自定义函数

train.groupby(['buyer_admin_id']).agg({'buyer_country_id':unique_num})

二.下面对groupby和agg使用方法进行总结:

1. 分组后,返回一个含有分组大小的Series

按key1分组:  df.groupby(['key1']).size()

按[key1,key2]分组: df.groupby(['key1','key2']).size()

2. 对data1按key1进行分组,并计算data1列的平均值

df['data1'].groupby(df['key1']).mean()

说明:groupby没有进行任何的计算。它只是进行了一个分组。数据(Series)根据分组键进行了聚合,产生了一个新的Series,其索引为key1列中的唯一值。

3.对data1按[key1,key2]进行分组,并计算data1的平均值

df.groupby(['key1','key2'])['data1'].mean()

4.agg函数使用:

1)df.groupby(['key1'])['data1'].min() ==

df.groupby(['key1'])['data1'].agg({'min'}) ==

(推荐使用)df.groupby(['key1']).agg({'data1':'min'})#对data1列,取各组的最小值,名字还是data1

2)按key1分组后,aggregate各组data1的最小值和最大值:

df.groupby(['key1'])['data1'].agg({'min','max'}) ==(推荐使用)df.groupby(['key1']).agg({'data1':['min','max']})

3)可以对groupby的结果更正列名(不推荐用这个,哪怕在后面单独更改列名):

df.groupby(['key1'])['data1'].agg({'a':'min','b':'max'})#这里的'min' 'max'为两个函数名

最新文章

  1. Sql Server系列:多表连接查询
  2. LeetCode-Combinations
  3. 第一零二天上课 PHP TP框架 引入文件路径问题和调用验证码的方式
  4. 使用pymongo需要手动关闭MongoDB Connection吗?
  5. Linux下inotify监控文件夹状态,发生变化后触发rsync同步
  6. xv6中存储cpu和进程信息的技巧
  7. ubuntu下Eclipse无法启动
  8. 排序问题思考(要求时间和空间复杂度尽可能的低)【Part 2】
  9. 精通gulp常用插件
  10. 好多鱼 Java
  11. python编程快速上手之第10章实践项目参考答案
  12. Shader 1:能接受阴影的透明shader
  13. Python-常用第三方库
  14. Uva - 400 - Unix ls
  15. EFCore Lazy Loading + Inheritance = 干净的数据表 (一) 【献给处女座的DB First程序猿】
  16. DLL加载,设置相对路径
  17. 虚拟机静态ip设置
  18. 转:一千行MYSQL 笔记
  19. 文件管理 - Ring3创建目录
  20. Confluence 6 空间标识

热门文章

  1. python+requests----登录接口reponse中token传递给其他接口使用的一个简单小示例介绍
  2. [ES2019] Use JavaScript ES2019 flatMap to Map and Filter an Array
  3. js.map文件意义(转)
  4. PHP mysqli_dump_debug_info() 函数
  5. OI 常用模板 手写
  6. Luogu5369 [PKUSC2018]最大前缀和
  7. 在Android中使用OpenGL ES开发第(四)节:相机预览
  8. 提交项目到Github
  9. vscode设置VUE eslint开发环境
  10. vmware 安装 VMwareTools