当前位置: 首页 >数据库 > Pandas 的groupby操作

Pandas 的groupby操作

### 目的
在做数据分析的时候,我们的数据一般从数据库来,那么就涉及到groupby操作。例如,我们要预测一个居民小区的未来一段时间的电费,那么就要将数据按照小区groupby,然后按照时间排序,这里groupby操作可完美的完成这个任务。
假设数据表cellfee结构为:
reportdate, cidyid, cellid, fee。
### 读取表数据
```
import pandas as pd
from sqlalchemy import create_engine
# default
engine = create_engine('mysql+pymysql://ledao:ledao123@localhost/pandas_lea')
original_data = pd.read_sql_table('cellfee', engine)
original_data
```
### groupby分组汇总指定类别的所有数据
```
for k, v in original_data.groupby([original_data['cityid'], original_data['cellid']]):
    print('key: {}, type is {}'.format(k, type(k)))
    print('vale:\n {}, \ntype is {}'.format(v, type(v)))
```
上述的代码的结果为:
key: ('1', '1'), type is <class 'tuple'>
vale:
   reportdate cityid cellid   fee
0 2017-07-20      1      1  10.0
1 2017-07-21      1      1  10.0
2 2017-07-22      1      1  10.0
3 2017-07-23      1      1  10.0,
type is <class 'pandas.core.frame.DataFrame'>
通过一个简单的groupby函数,我们就能将数据库中以列存储的数据根据分组要求全部汇总到一个形成一个DataFrame。后续对分组形成的DataFrame可以做形成特征向量,排序,再继续汇总等常见的数据分析的操作。
在groupby的操作上,我只服气scala、kotlin的模式,即groupby加map(flatMap),希望pandas以后也会支持这种函数式的操作。
### agg函数
除了groupby的结果通过for遍历之后,Pandas也提供了agg函数,详见[Pandas官网](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.groupby.DataFrameGroupBy.agg.html)。主要用于对具体的列的操作,类似sql。







作者:ledao
来源链接:https://www.cnblogs.com/ledao/p/15085646.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/database/117590.html

标签:group by
分享给朋友:

“Pandas 的groupby操作” 的相关文章

Oracle SQL 2022年06月05日 03:43:59
mysql 查询列拼接字段 2022年06月12日 09:17:20
mysql查询重复的 2022年06月12日 13:49:33
关于mysql查询时间范围的问题 2022年06月12日 21:19:01
Mysql拼接查询结果 2022年06月15日 19:36:23
mysql中查询包含反斜杠字符串 2022年06月17日 23:56:38