对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实现strcmp函数功能示例
Mar 25 Python
Python实现抓取页面上链接的简单爬虫分享
Jan 21 Python
使用Python标准库中的wave模块绘制乐谱的简单教程
Mar 30 Python
python交互式图形编程实例(二)
Nov 17 Python
Python实现注册、登录小程序功能
Sep 21 Python
10个Python小技巧你值得拥有
Sep 29 Python
从列表或字典创建Pandas的DataFrame对象的方法
Jul 06 Python
Python中注释(多行注释和单行注释)的用法实例
Aug 28 Python
python3安装OCR识别库tesserocr过程图解
Apr 02 Python
python thrift 实现 单端口多服务的过程
Jun 08 Python
Python爬虫UA伪装爬取的实例讲解
Feb 19 Python
python使用pygame创建精灵Sprite
Apr 06 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 set_time_limit(0)长连接的实现分析
2010/03/02 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
thinkPHP学习笔记之安装配置篇
2015/03/05 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
2019/09/04 PHP
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
解决Extjs下拉框不显示的问题
2017/06/21 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
2017/12/06 Javascript
jQuery+CSS实现的table表格行列转置功能示例
2018/01/08 jQuery
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
jQuery弹框插件使用方法详解
2020/05/26 jQuery
浅析我对JS延迟异步脚本的思考
2020/10/12 Javascript
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
Win7上搭建Cocos2d-x 3.1.1开发环境
2014/07/03 Python
使用python调用zxing库生成二维码图片详解
2017/01/10 Python
python+django加载静态网页模板解析
2017/12/12 Python
python的staticmethod与classmethod实现实例代码
2018/02/11 Python
python正则实现提取电话功能
2018/02/24 Python
目前最全的python的就业方向
2018/06/05 Python
Python GUI编程 文本弹窗的实例
2019/06/11 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
对Django项目中的ORM映射与模糊查询的使用详解
2019/07/18 Python
python文件操作的简单方法总结
2019/11/07 Python
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
2014/10/10 HTML / CSS
纯css3实现照片墙效果
2014/12/26 HTML / CSS
css3实现蒙版弹幕功能
2019/06/18 HTML / CSS
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
高中毕业生个人自我鉴定
2013/11/24 职场文书
2014年情人节活动方案
2014/02/16 职场文书
双语教学实施方案
2014/03/23 职场文书
私人房屋买卖协议书
2014/10/04 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
Python数组变形的几种实现方法
2022/05/30 Python
Docker容器harbor私有仓库部署和管理
2022/08/05 Servers