一、分组与聚合

在数据分析中,我们有时需要将数据拆分,在每一个特定的组里进行运算

1、实验数据准备

a = pd.read_csv('601318.csv')
a

  数据如下:

实验数据

2、示例

df.groupby('key1').mean()

3、分组与聚合的步骤

分组:拆分数据为若干组

聚合:组内应用某个函数

二、分组

1、按一列分组

df.groupby('key1').mean()

2、按多列分组

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

 

3、自定义分组

df.groupby(len).mean()

df.groupby(lambda x:len(x)).mean()

  

4、获取分组信息

df.groupby(lambda x:'zheng' if df.loc[x,'data2']>0 else 'fu').mean()

  

df.groupby('key1').get_group('b')

  

 

三、聚合

分组之后需要聚合函数来应用到每一组中

内置聚合函数

1、自定义聚合函数

df.groupby('key1').agg(lambda x:x.max())

  

2、多个聚合函数

3、不同列应用不同聚合函数

df.groupby('key1').agg({'data1':'min','data2':'max'})

  

四、数据合并

1、数据拼接

df2 = df.copy()
df3 = df.copy()
pd.concat([df,df2,df3])

 

pd.concat([df,df2,df3],keys=list('abc'))

  

pd.concat([df,df2,df3],ignore_index=True)

  

pd.concat([df,df2,df3],axis=1)

  

pd.concat([df,df2,df3],axis=1,ignore_index=True)

  

2、数据连接

pd.merge(df,df2)

  

pd.merge(df,df2,on='key1')

  

pd.merge(df,df2)

  

pd.merge(df,df2,on=['key1','key2'])

  

3、合并小结

金融量化分析【day111】:Pandas-分组与聚合的更多相关文章

  1. day31 堡垒机尾声 + Python与金融量化分析(一)

    堡垒机尾声: 代码案例:https://github.com/liyongsan/git_class/tree/master/day31 课堂笔记:file send: 1.选择本地文件 2.远程路径 ...

  2. pandas分组和聚合

    Pandas分组与聚合 分组 (groupby) 对数据集进行分组,然后对每组进行统计分析 SQL能够对数据进行过滤,分组聚合 pandas能利用groupby进行更加复杂的分组运算 分组运算过程:s ...

  3. 金融量化分析【day110】:金融基础知识

    一.股票 股票: 股票是股份公司发给出资人的一种凭证,股票的持有者就是股份公司的股东. 股票的面值与市值 面值表示票面金额 市值表示市场价值 上市/IPO: 企业通过证券交易所公开向社会增发股票以募集 ...

  4. day32 Python与金融量化分析(二)

    第一部分:金融与量化投资 股票: 股票是股份公司发给出资人的一种凭证,股票的持有者就是股份公司的股东. 股票的面值与市值 面值表示票面金额 市值表示市场价值 上市/IPO: 企业通过证券交易所公开向社 ...

  5. 金融量化分析-python量化分析系列之---使用python获取股票历史数据和实时分笔数据

    财经数据接口包tushare的使用(一) Tushare是一款开源免费的金融数据接口包,可以用于获取股票的历史数据.年度季度报表数据.实时分笔数据.历史分笔数据,本文对tushare的用法,已经存在的 ...

  6. Python与金融量化分析----金融与量化投资

    一:金融了解 金融:就是对现有资源进行重新的整合之后,进行价值和利润的等效流通. 金融工具: 股票 期货 黄金 外汇 基金 ............. 股票: 股票是股份公司发给出资人多的一种凭证,股 ...

  7. 金融量化分析【day111】:Matplotib-绘制K线图

    一.绘制k线图 1.使用金融包出错解决 1.错误代码 ImportError: No module named finance 2.解决办法 https://github.com/matplotlib ...

  8. 金融量化分析【day110】:Pandas的Series对象

    一.pandas简介安装 pandas是一个强大的python数据分析的工具包 pandsa是基于NumPy构建的 1.pandas的主要功能 1.具备对其功能的数据结构DataFrame.Serie ...

  9. 金融量化分析【day111】:Matplotib简介

    一.Matplotib-绘图和可视化简介 Matplotib是一个强大的Python绘图和数据可视化的工具包 1.安装方法 pip install matplotlib 2.引用方法 import m ...

随机推荐

  1. python粗谈面向对象(一)

    1.面向过程编程vs函数式编程 面向过程编程 以计算对象的元素个数为例. str_1 = 'abcdefg' count = 0 for i in str_1: # 统计字符串元素个数 count + ...

  2. lcd参数解释及刷新率计算,LCD时序

    一.LCD显示图像的过程如下: 其中,VSYNC和HSYNC是有宽度的,加上后如下: 参数解释: HBP(Horizontal Back Porch)水平后沿:在每行或每列的象素数据开始输出时要插入的 ...

  3. MFC拖拽、选择目录、遍历文件

    1.选择目录 void CDecryptFileDlg::OnBnClickedSel() { std::wstring selectedDir; WCHAR szDir[MAX_PATH]; Zer ...

  4. IIS 反向代理到 Apache、Tomcat

    将请求的网址重写重定向到其它网址.当80端口被占用无法同时使用两个Web服务的解决方案,使得IIS和Apache Tomcat 共存 环境 WindowServer 2008 IIS7 Apache ...

  5. LeetCode算法题-Two Sum IV - Input is a BST(Java实现)

    这是悦乐书的第280次更新,第296篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第148题(顺位题号是653).给定二进制搜索树和目标数,如果BST中存在两个元素,使得 ...

  6. gulp结合Thinkphp配置

    gulpfile.js文件 /*! * gulp * $ npm install gulp gulp-ruby-sass gulp-cached gulp-uglify gulp-rename gul ...

  7. webpack开发环境和生产环境切换原理

    在package.json中有如下设置: "scripts": {    "dev": "node build/dev-server.js" ...

  8. java如何获取一个对象的大小【转】

    When---什么时候需要知道对象的内存大小 在内存足够用的情况下我们是不需要考虑java中一个对象所占内存大小的.但当一个系统的内存有限,或者某块程序代码允许使用的内存大小有限制,又或者设计一个缓存 ...

  9. IDEA+快捷键

    格式化代码:ctrl+alt+L IDEA快捷键管理:https://blog.csdn.net/h8178/article/details/78328097  (duplicate:为复制上一行)

  10. Pandas 把数据写入csv

    Pandas 把数据写入csv from sklearn import datasets import pandas as pd iris = datasets.load_iris() iris_X ...