zoukankan      html  css  js  c++  java
  • python数据分析——多层索引嵌套

    1. 创建多层列索引

    1) 隐式构造

    最常见的方法是给DataFrame构造函数的index或者columns参数传递两个或更多的数组

    qizhong qizhong qimo qimo chinese math chinese math tom 100 90 80 70

    jay 100 90 80 70

    2) 显示构造pd.MultiIndex.from_

    • 使用数组
    - 使用product:
    最简单,推荐使用
    In [1]:
    import numpy as np
    import pandas as pd
    from pandas import Series,DataFrame
    
    In [2]:
    col=pd.MultiIndex.from_product([['qizhong','qimo'],
                                    ['chinese','math']])
    
    In [3]:
    #创建DF对象
    df = DataFrame(data=np.random.randint(60,120,size=(2,4)),index=['tom','jay'],
             columns=col)
    df
    
    Out[3]:
     qizhongqimo
     chinesemathchinesemath
    tom 108 80 61 72
    jay 83 104 110 74
    In [5]:
    df['qimo']
    
    Out[5]:
     chinesemath
    tom 61 72
    jay 110 74
     

    2. 多层行索引

    除了列索引,行索引也能用上述同样的方法创建多层行索引

    3. 多层索引对象的索引与切片操作

    1)DataFrame的操作

    注意在对行索引的时候,若一级行索引还有多个,对二级行索引会遇到问题!也就是说,无法直接对二级索引进行索引,必须让二级索引变成一级索引后才能对其进行索引! 

    切片操作

    In [4]:
    #获取张三李四期中的php和c++成绩
    
    In [5]:
    #获取张三李四所有的成绩
    
    In [16]:
    # 总结:
    # 访问一列或多列 直接用中括号[columnname]  [[columname1,columnname2...]]
    #访问一行或多行  .loc[indexname]
    # 访问某一个元素  .loc[indexname,columnname]  获取李四期中的php成绩
    # 行切片          .loc[index1:index2]        获取张三李四的期中成绩
    # 列切片          .loc[:,column1:column2]    获取张三李四期中的php和c++成绩

    5. 聚合操作

    所谓的聚合操作:平均数,方差,最大值,最小值……

  • 相关阅读:
    451. Sort Characters By Frequency
    424. Longest Repeating Character Replacement
    68. Text Justification
    44. Wildcard Matching
    160. Intersection of Two Linked Lists
    24. Swap Nodes in Pairs
    93. 递归实现组合型枚举
    98. 分形之城
    97. 约数之和
    96. 奇怪的汉诺塔
  • 原文地址:https://www.cnblogs.com/bilx/p/11635846.html
Copyright © 2011-2022 走看看