对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中使用第三方库xlrd来读取Excel示例
Apr 05 Python
解决pandas read_csv 读取中文列标题文件报错的问题
Jun 15 Python
用于业余项目的8个优秀Python库
Sep 21 Python
浅谈Pandas:Series和DataFrame间的算术元素
Dec 22 Python
OpenCV搞定腾讯滑块验证码的实现代码
May 18 Python
使用python制作一个为hex文件增加版本号的脚本实例
Jun 12 Python
python 随机生成10位数密码的实现代码
Jun 27 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
Mar 06 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 Python
Python-jenkins模块之folder相关操作介绍
May 12 Python
Python基于smtplib协议实现发送邮件
Jun 03 Python
Python实现byte转integer
Jun 03 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
索尼SONY ICF-SW7600GR电路分析与改良
2021/03/02 无线电
discuz安全提问算法
2007/06/06 PHP
PHP学习 运算符与运算符优先级
2008/06/15 PHP
php 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
PHP多个版本的分析解释
2011/07/21 PHP
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
Bootstrap插件全集
2016/07/18 Javascript
jQuery 特性操作详解及实例代码
2016/09/29 Javascript
详解百度百科目录导航树小插件
2017/01/08 Javascript
nodeJs链接Mysql做增删改查的简单操作
2017/02/04 NodeJs
React Native 真机断点调试+跨域资源加载出错问题的解决方法
2018/01/18 Javascript
对于防止按钮重复点击的尝试详解
2019/04/22 Javascript
[01:07]DOTA2次级职业联赛 - Fpb战队宣传片
2014/12/01 DOTA
改进Django中的表单的简单方法
2015/07/17 Python
python实现微信自动回复及批量添加好友功能
2019/07/03 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
Python读取表格类型文件代码实例
2020/02/17 Python
python实现程序重启和系统重启方式
2020/04/16 Python
Python 日期与时间转换的方法
2020/08/01 Python
anello泰国官方网站:日本流行包包品牌
2019/08/08 全球购物
美国知名的隐形眼镜电商:Contacts America
2019/11/19 全球购物
自我鉴定怎么写
2013/12/05 职场文书
应届毕业生个人求职信范文
2014/01/29 职场文书
公司员工检讨书
2014/02/08 职场文书
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
《小小雨点》教学反思
2014/02/18 职场文书
社区网格化管理实施方案
2014/03/21 职场文书
2014年党务公开方案
2014/05/08 职场文书
商业项目策划方案
2014/06/05 职场文书
国际经济与贸易专业求职信
2014/07/10 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书
pandas提升计算效率的一些方法汇总
2021/05/30 Python
CSS精灵图的原理与使用方法介绍
2022/03/17 HTML / CSS
配置Kubernetes外网访问集群
2022/03/31 Servers