• Part16:Pandas的分层索引MultiIndex怎么用?【详解】


    Pandas的分层索引Multilndex

    1为什么要学习分层索引Multilndex?

    1、分层索引:在一个轴向上拥有多个索引层级,可以表达更高维度数据的形式;

    2、方便的进行数据筛选,如果有序则性能更好;

    3、groupby等操作的结果,如果是多KEY,结果是分层索引,需要会使用。

    4、一般不需要自己创建分层索引(Multilndex有构造函数但一般不用)

    演示数据:百度、阿里巴巴、爱奇艺、京东四家公司的10天股票数据数据来自:英为财经

    —、Series的分层索引Multilndex

    二、Series有多层索引怎样筛选数据?

    三、DataFrame的多层索引Multilndex

    四、DataFrame有多层索引怎样筛选数据?

    1. import pandas as pd
    2. %matplotlib inline
    3. stocks=pd.read_excel('./datas/stocks/互联网公司股票.xlsx')
    4. stocks.shape
    stocks

     

    1. stocks['公司'].unique()
    2. stocks.index
    3. #计算每个公司收盘的平均值
    4. stocks.groupby('公司')['收盘'].mean()

    一、Series的分层索引MultiIndex 

    1. ser=stocks.groupby(['公司','日期'])['收盘'].mean()
    2. ser
    ser.index
    1. # unstack把二级索引变成列
    2. ser.unstack()
    3. ser
    1. #全部变成一维的普通索引模式
    2. ser.reset_index()

     

     二、Series有多层索引Multilndex怎样筛选数据?

     

    1. ser
    2. ser.loc['BIDU']
    3. # 多层索引,可以用元组的形式进行筛选
    4. ser.loc[('BIDU','2019-10-02')]

    1. #求所有公司中指定月份的收盘价
    2. ser.loc[:,'2019-10-02']

     三、DataFrame的多层索引Multilndex

    1. stocks.head()
    2. stocks.set_index(['公司','日期'],inplace=True)
    3. stocks

    1. stocks.index
    2. #自动根据索引进行排序,默认为升序排列
    3. stocks.sort_index(inplace=True)
    4. stocks

     

     

    四、DataFrame有多层索引Multilndex怎样筛选数据?

    【重要知识】在选择数据时:

    。元组(key1.key2)代表筛选多层索引,其中key1是索引第一级,key2是第二级,比如key1=JD, key2=2019-10-02

    ·列表[key1,key2]代表同一层的多个KEY,其中key1和key2是并列的同级索引,比如key1=JD, key2=BIDU

    stocks.loc['BIDU']

    1. # 'BIDU'是一级索引 '2019-10-02'是二级索引
    2. stocks.loc[('BIDU','2019-10-02'),:]

     

    stocks.loc[('BIDU','2019-10-02'),'开盘']

    1. #设置日期的同一级索引的格式
    2. stocks.loc[('BIDU',['2019-10-03','2019-10-02']),'收盘']

    1. #slice(None)代表筛选中一索引的所有内容---在这里的意思就是筛选一级索引‘公司’的所有内容
    2. stocks.loc[(slice(None),['2019-10-03','2019-10-02']),:]

     

    1. #将多重索引全部重置,转换为一维索引
    2. stocks.reset_index()

     

  • 相关阅读:
    聚类分析、matlab\我国各地区普通高等教育发展状况分析、Q型、R型聚类
    深入了解Redission分布式锁原理以及可重入锁的原理
    深入解读 Android Hook 技术-从原理到实践
    C++ Reference: Standard C++ Library reference: C Library: cctype: isxdigit
    redis-cli客户端中获取数据中文显示xe问题
    Java----内部类、外部类、匿名对象、匿名对象的创建
    iOS图文混排 头部有图片等相关内容的trick实现方式
    华为OSN1800V 5U分组增强型多业务光传送平台
    文本分类从入门到精通—代码展示
    商品规格项数据的遍历以及添加
  • 原文地址:https://blog.csdn.net/qq_46044325/article/details/126908569