对pandas的层次索引与取值的新方法详解


Posted in Python onNovember 06, 2018

1、层次索引

1.1 定义

在某一个方向拥有多个(两个及两个以上)索引级别,就叫做层次索引。

通过层次化索引,pandas能够以较低维度形式处理高纬度的数据

通过层次化索引,可以按照层次统计数据

层次索引包括Series层次索引和DataFrame层次索引

1.2 Series的层次索引

import numpy as np
import pandas as pd

s1 = pd.Series(data=[99, 80, 76, 80, 99],
    index=[['2017', '2017', '2018', '2018', '2018'], ['张伊曼', '张巧玲', '张诗诗', '张思思', '张可可']])
print(s1)

对pandas的层次索引与取值的新方法详解

1.3 DataFrame的层次索引

# DataFrame的层次索引
df1 = pd.DataFrame({
 'year': [2016, 2016, 2017, 2017, 2018],
 'fruit': ['apple', 'banana', 'apple', 'banana', 'apple'],
 'production': [10, 30, 20, 70, 100],
 'profits': [40, 30, 60, 80,10],
})
print("df1===================================")
print(df1)

df2 = df1.set_index(['year', 'fruit'])
print("df2===================================")
print(df2)

print("df2.index===================================")
print(df2.index)

print("df2.sum(level='year')===================================")
print(df2.sum(level='year'))

print("df2.mean(level='fruit')===================================")
print(df2.mean(level='fruit'))

print("df2.sum(level=['year', 'fruit'])===================================")
print(df2.sum(level=['year', 'fruit']))

对pandas的层次索引与取值的新方法详解

对pandas的层次索引与取值的新方法详解

2、取值的新方法

ix是比较老的方法 新方式是使用iloc loc

iloc 对下标值进行操作 Series与DataFrame都可以操作

loc 对索引值进行操作 Series与DataFrame都可以操作

2.1 Series

# # 取值的新方法
s1 = pd.Series(data=[99, 80, 76, 80, 99],
    index=[['2017', '2017', '2018', '2018', '2018'], ['张伊曼', '张巧玲', '张诗诗', '张思思', '张可可']])

print("s1=================================")
print(s1)

print("s1.iloc[2]=================================")
print(s1.iloc[2])

print("s1.loc['2018']['张思思']=================================")
print(s1.loc['2018']['张思思'])

对pandas的层次索引与取值的新方法详解

2.2 DataFrame

df1 = pd.DataFrame({
 'year': [2016, 2016, 2017, 2017, 2018],
 'fruit': ['apple', 'banana', 'apple', 'banana', 'apple'],
 'production': [10, 30, 20, 70, 100],
 'profits': [40, 30, 60, 80,10],
})
print("df1===================================")
print(df1)

print("旧方法获取值===================================")
print("df1['year'][0]===================================")
print(df1['year'][0])

print("df1.ix[0]['year']===================================")
print(df1.ix[0]['year'])

print("新方法获取值===================================")
print("df1.iloc[0][3]===================================")
print(df1.iloc[0][3])

print("df1.loc[0]['year']===================================")
print(df1.loc[0]['year'])

对pandas的层次索引与取值的新方法详解

以上这篇对pandas的层次索引与取值的新方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的Flask框架中@app.route的用法教程
Mar 31 Python
python中requests模块的使用方法
Apr 08 Python
Python 3.x 新特性及10大变化
Jun 12 Python
Python简单调用MySQL存储过程并获得返回值的方法
Jul 20 Python
Python网络爬虫项目:内容提取器的定义
Oct 25 Python
Python实现删除文件中含“指定内容”的行示例
Jun 09 Python
python找出完数的方法
Nov 12 Python
详解Python self 参数
Aug 30 Python
Android Q之气泡弹窗的实现示例
Jun 23 Python
Python用户自定义异常的实现
Dec 25 Python
解决Python字典查找报Keyerror的问题
May 26 Python
python 字典和列表嵌套用法详解
Jun 29 Python
浅谈pandas用groupby后对层级索引levels的处理方法
Nov 06 #Python
Python Series从0开始索引的方法
Nov 06 #Python
在Python中pandas.DataFrame重置索引名称的实例
Nov 06 #Python
pandas重新生成索引的方法
Nov 06 #Python
对pandas数据判断是否为NaN值的方法详解
Nov 06 #Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
Nov 06 #Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
Nov 06 #Python
You might like
PHP中return 和 exit 、break和contiue 区别与用法
2012/04/09 PHP
编写安全 PHP应用程序的七个习惯深入分析
2013/06/08 PHP
解析用PHP实现var_export的详细介绍
2013/06/20 PHP
php函数式编程简单示例
2019/08/08 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
JavaScript知识点整理
2015/12/09 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
2018/11/25 Javascript
详解element-ui中form验证杂记
2019/03/04 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
基于JQuery和DWR实现异步数据传递
2020/10/16 jQuery
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
Python3.x和Python2.x的区别介绍
2013/02/12 Python
itchat接口使用示例
2017/10/23 Python
python编程嵌套函数实例代码
2018/02/11 Python
浅谈python的dataframe与series的创建方法
2018/11/12 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
python的pytest框架之命令行参数详解(下)
2019/06/27 Python
Python中remove漏删和索引越界问题的解决
2020/03/18 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
2020/06/02 Python
在keras中实现查看其训练loss值
2020/06/16 Python
css3学习心得分享
2013/08/19 HTML / CSS
雷曼兄弟的五金店:Lehman’s Hardware Store
2019/04/10 全球购物
平面设计专业求职信
2014/08/09 职场文书
个人委托函范文
2015/01/29 职场文书
幼师辞职信范文大全
2015/05/12 职场文书
2016幼儿园新学期寄语
2015/12/03 职场文书
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python
Win11安装升级时提示“该电脑必须支持安全启动”
2022/04/19 数码科技