【小白python数据分析入门7层级索引】

目录

1.课前准备:

2.数据编辑操作是什么

3.创建层级索引:轴上有多个索引

3.1创建Series的层级索引

3.2 创建DataFrame的层级索引

3.2.1隐式构造层级索引

​3.2.2 显示构造  pd.MultiIndex

3.3层级索引对象元素操作

3.3.1Series的元素操作

3.3.2 DataFrame的元素操作

3.3.3 调整层级索引间的顺序

3.3.4 对某级别索引排序

3.3.5 对某级索引进行汇总

3.3.6 更换索引

4.Pandas数据结构之间算数运算

4.1两个Series对象的运算

4.2 两个DataFrame之间的运算

5. Pandas函数应用

5.1 pandas的数据筛选操作及函数

5.1.1获取前两个索引对应的行,即行索引为 '一' 和 '二' 的行

5.1.2返回df3的最后两行

5.1.3 查看基本信息

5.1.4 shape属性来获取DataFrame的维度

5.2 函数应用和映射

5.2.1 map()函数

5.2.2 apply()函数

案例1:Series对象:

案例2:DataFrame对象相减:

案例3:DataFrame对象相加:

5.2.4 applymap()函数

5.3 排序和排名

6.汇总与统计

7.唯一值和值计数


1.课前准备:

(1)python可视化免费软件(官网:Project Jupyter | Home):

        Jupyter Notebook (anaconda)

(2)  会动的脑袋瓜子

(3)本篇阅读完有啥不理解的可以在评论区留言哈。

2.数据编辑操作是什么

层级索引是Pandas库中用于表示高维数据的一种索引方式,它允许在一个轴上拥有多个(两个以上)索引级别

在数据分析中,层级索引的使用可以带来以下好处:

  1. 多维度数据管理:层级索引使用户能够以低维度的形式处理高维度数据,这在处理复杂的数据集时非常有用。
  2. 更灵活的索引操作:通过层级索引,可以实现更加灵活的数据操作,如根据特定层级进行数据的选取、重排和汇总统计等。
  3. 方便的数据重塑:使用层级索引,可以方便地进行数据的堆叠(stack)和展开(unstack),以及设置索引(set_index)和重置索引(reset_index)等操作,这些操作对于数据整理和分析至关重要。
  4. 提高数据可读性:层级索引有助于提高数据的可读性和理解性,尤其是在处理具有多个分类变量的数据集时。
  5. 简化复杂查询:当数据集中存在多层次的分类信息时,层级索引可以简化复杂查询的操作,使得数据筛选更加直观和高效。

3.创建层级索引:轴上有多个索引

3.1创建Series的层级索引

首先创建一个Series对象

s1=Series(["xiaowang","1班","xiaoli","二班"],index=[[1,2,3,3],["姓名","班级","姓名","班级"]])
s1

其次建立层次化索引(hierarchical index),由两个级别的索引组成。

第一个级别是数字 [1, 2, 3, 3],表示每个数据值对应的行号。第二个级别是字符串 ["姓名", "班级", "姓名", "班级"],表示每个数据值对应的列名。

s1.index

3.2 创建DataFrame的层级索引

3.2.1隐式构造层级索引

首先,我们需要导入pandas库,然后创建一个numpy数组data1,接着使用这个数组和指定的列名、索引来创建一个DataFrame df1。

from_arrays:这个方法通过接受一个数组列表作为输入,其中每个数组代表 MultiIndex 的一个层级。这些数组按照提供的顺序被组合成多级索引。

data1 = np.array([["小张", "男", 20], ["小王", "女", 19], ["小杨", "男", 19], ["小李", "男", 21]])
df1 = DataFrame(data1, columns=["姓名", "性别", "年龄"],
               index=pd.MultiIndex.from_arrays([[1, 1, 2, 2], ["班长", "学委", "班长", "学委"]]))
df1

或者:

from_product:此方法用于根据提供的可迭代对象集合之间的笛卡尔积来创建 MultiIndex。也就是说,它会生成所有可能的组合,适用于需要交叉迭代多个集合来创建索引的场景。

import numpy as np
import pandas as pd
from pandas import DataFrame

data1 = np.array([["小张", "男", 20], ["小王", "女", 19], ["小杨", "男", 19], ["小李", "男", 21]])
df1 = DataFrame(data1, columns=["姓名", "q性别", "年龄"],
               index=pd.MultiIndex.from_tuples([[1, 1, 2, 2], ["班长", "学委", "班长", "学委"]]))
df1
3.2.2 显示构造  pd.MultiIndex

首先,创建一个 Pandas Series

from pandas import Series,DataFrame
import numpy as np
import pandas as pd
s1=Series(["小王","一班","小李","二班"],index=[[1,1,2,2],["姓名","班级","姓名","班级"]])
s1

3.3层级索引对象元素操作

3.3.1Series的元素操作

首先创建一个对象

s1=Series(["小王","一班","小李","二班"],index=[[1,1,2,2],["姓名","班级","姓名","班级"]])
s1

slice(1, 3) 创建一个从 1 到 3 的切片,不包括 3,对应于第一级索引

s1.iloc[0:3]  #自动索引 左闭右开

相关例子:

s1.iloc[1:1]  

s1.iloc[1:2] 

3.3.2 DataFrame的元素操作

首先创建一个对象

from pandas import Series,DataFrame
import numpy as np
data1=np.array([["小张","男",20],["小王","女",19],["小杨","男",19],["小李","男",21]])
df=DataFrame(data1,columns=["姓名","性别","年龄"],
              index=[["一班","一班","二班","二班
  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值