Python数据分析之groupby语法糖对分组进行迭代语法糖一:选取一个或多个列

对于dataframe的groupby聚合函数来说,我们适当了解下语法糖,会对数据分析起到事半功倍的效果。

对分组进行迭代

首先看下各字段的类型

import numpy as np
import pandas as pd
import pymysql
conn = pymysql.connect(host='localhost', user='root', passwd='123456', db='test', port=3306, charset='utf8')
jianshu = pd.read_sql('select * from jianshu1',conn)
jianshu.dtypes

可以看出,view这些字段是整数类型的数据,但这里是object数据,所以我们需要进行数据类型的修改,以view为例。

jianshu['view'] = jianshu['view'].astype('int64')
jianshu.dtypes

把user列作为索引。

jianshu.set_index('user',inplace=True)
jianshu

通过分组后的数据类型为groupby对象,可进行迭代。

jianshu.groupby(jianshu.index)
for name,group in jianshu.groupby(jianshu.index):
    print(name,group)

语法糖一:选取一个或多个列

jianshu.groupby(jianshu.index)[['view']].sum()

语法糖二:数据聚合 通过aggregate或者agg方法

jianshu.groupby(jianshu.index)[['view']].agg(['mean','sum'])

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏noteless

java for循环里面执行sql语句操作,有效结果只有一次,只执行了一次sql mybatis 循环执行update生效一次 实际只执行一次

java后台controller中,for循环执行数据库操作,但是发现实际仅仅执行了一次,或者说提交成功了一次,并没有实际的个数循环

1083
来自专栏重庆的技术分享区

AngularJs指令解密

1457
来自专栏十月梦想

Promise对象、传参以及错误处理

在大部分情况下我们的程序都是在进行异步操作,需要嵌套多次callback,使得程序变得复杂!ES6中提供了Promise对象,将非阻塞I/O变为阻塞I/O,把异...

741
来自专栏finleyMa

解决setTimeout中的this指向问题

在setInterval和setTimeout中传入函数时,函数中的this会指向window对象。

975
来自专栏JavaQ

MySQL中如何选择VARCHAR和CHAR类型

首先,VARCHAR和CHAR是两种最主要的字符串类型。在设计用于存储字符串的表字段时,可能会对到底选哪个类型有所犹豫,确实如果不了解它们之间的区别,选择上不会...

3076
来自专栏西枫里博客

以关联表中的count计数作为主表的排序依据

标题场景例如本站右侧标签云,主要的排序依据是tag标签出现的次数。由于数据库设计时,将tag标签独立,并没有作为article文章表的一个字段。通过一个中间关联...

441
来自专栏全沾开发(huā)

学习zepto.js(Hello World)

学习zepto.js(Hello World) Zepto是一个轻量级的针对现代高级浏览器的JavaScript库, 它与jquery...

4108
来自专栏坚毅的PHP

list comprehensions

2011-10-07 列表解析 python很优雅的东西,今天从cookbook稍微深的理解下它,举例: >>> multi = [[0] * 5] * 3 ...

3333
来自专栏xingoo, 一个梦想做发明家的程序员

【AngularJS】—— 4 表达式

前面了解了AngularJS的基本用法,这里就跟着PDF一起学习下表达式的相关内容。   在AngularJS中的表达式,与js中并不完全相同。   首先...

1945
来自专栏蜉蝣禅修之道

oracle数据库学习之rownum

1522

扫码关注云+社区