zoukankan      html  css  js  c++  java
  • 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_learn')
    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: {}, type 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。







  • 相关阅读:
    OC学习笔记
    feed43+ifttt
    让Hyper-V和VMware虚拟机软件共存
    ios问题集
    vs2012问题集
    第二个win8应用制作笔记
    隐私策略
    《龙泉青瓷》隐私策略
    win8开发-Xaml学习笔记四
    梦想成为“老板”的第N天
  • 原文地址:https://www.cnblogs.com/ledao/p/15085646.html
Copyright © 2011-2022 走看看