对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中支持向量机SVM的使用方法详解
Dec 26 Python
Python内置模块ConfigParser实现配置读写功能的方法
Feb 12 Python
centos 安装python3.6环境并配置虚拟环境的详细教程
Feb 22 Python
python自动截取需要区域,进行图像识别的方法
May 17 Python
详解Python字典小结
Oct 20 Python
python读取目录下最新的文件夹方法
Dec 24 Python
Python自动化运维之Ansible定义主机与组规则操作详解
Jun 13 Python
vscode写python时的代码错误提醒和自动格式化的方法
May 07 Python
利用Python实现某OA系统的自动定位功能
May 27 Python
python学习笔记之多进程
Aug 06 Python
python包的导入方式总结
Mar 02 Python
python如何进行基准测试
Apr 26 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
一个没有MYSQL数据库支持的简易留言本的编写
2006/10/09 PHP
个人站长制做网页常用的php代码
2007/03/03 PHP
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
php操纵mysqli数据库的实现方法
2016/09/18 PHP
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
javascript实现playfair和hill密码算法
2014/12/07 Javascript
由ReactJS的Hello world说开来
2015/07/02 Javascript
学习使用bootstrap3栅格系统
2016/04/12 Javascript
详解使用nvm管理多版本node的方法
2017/08/30 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
javascript判断一个变量是数组还是对象
2019/04/10 Javascript
JavaScript实现星级评价效果
2019/05/17 Javascript
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
解决谷歌搜索技术文章时打不开网页问题的python脚本
2013/02/10 Python
全面分析Python的优点和缺点
2018/02/07 Python
Django 实现前端图片压缩功能的方法
2019/08/07 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
美国在线家居装饰店:Belle&June
2018/10/24 全球购物
两道JAVA笔试题
2016/09/14 面试题
社区工作者思想汇报
2014/01/13 职场文书
制药工程专业个人求职自荐信
2014/01/25 职场文书
关于母亲节的感言
2014/02/04 职场文书
岗位廉洁从业承诺书
2014/03/28 职场文书
预备党员转正思想汇报
2014/09/26 职场文书
青年文明号申报材料
2014/12/23 职场文书
实习班主任自我评价
2015/03/11 职场文书
同事欢送会致辞
2015/07/31 职场文书
大学体育课感想
2015/08/10 职场文书
导游词之无锡梅园
2019/11/28 职场文书
python实战之一步一步教你绘制小猪佩奇
2021/04/22 Python
关于JavaScript回调函数的深入理解
2021/06/27 Javascript
Anaconda配置各版本Pytorch的实现
2021/08/07 Python
openGauss数据库JDBC环境连接配置的详细过程(Eclipse)
2022/06/01 Java/Android
PostgreSQL常用字符串分割函数整理汇总
2022/07/07 PostgreSQL