对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 相关文章推荐
在Linux上安装Python的Flask框架和创建第一个app实例的教程
Mar 30 Python
python中字典dict常用操作方法实例总结
Apr 04 Python
Python multiprocessing模块中的Pipe管道使用实例
Apr 11 Python
python实现从ftp服务器下载文件的方法
Apr 30 Python
Python实现列表转换成字典数据结构的方法
Mar 11 Python
python读取二进制mnist实例详解
May 31 Python
Python使用pickle模块储存对象操作示例
Aug 15 Python
Python进阶之自定义对象实现切片功能
Jan 07 Python
更新修改后的Python模块方法
Mar 03 Python
Python基于机器学习方法实现的电影推荐系统实例详解
Jun 25 Python
对tensorflow中的strides参数使用详解
Jan 04 Python
通过实例解析python subprocess模块原理及用法
Oct 10 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
德生PL330的评价与改造
2021/03/02 无线电
模仿OSO的论坛(一)
2006/10/09 PHP
第十五节--Zend引擎的发展
2006/11/16 PHP
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
2014/09/28 PHP
smarty中改进truncate使其支持中文的方法
2016/05/30 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
PHP钩子与简单分发方式实例分析
2017/09/04 PHP
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
2016/07/07 Javascript
js简单时间比较的方法
2016/08/02 Javascript
jQuery 插件实现随机自由弹跳气泡样式
2017/01/12 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
详解vue mint-ui源码解析之loadmore组件
2017/10/11 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
2017/10/30 Javascript
vue项目中axios使用详解
2018/02/07 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
vue.js实现图书管理功能
2019/09/24 Javascript
Vue如何获取数据列表展示
2019/12/11 Javascript
[58:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第一场 1月31日
2021/03/11 DOTA
小结Python用fork来创建子进程注意事项
2014/07/03 Python
pyhton列表转换为数组的实例
2018/04/04 Python
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2019/06/27 Python
python 利用已有Ner模型进行数据清洗合并代码
2019/12/24 Python
JPA的优势都有哪些
2013/07/04 面试题
保护母亲河倡议书
2014/04/14 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
离婚协议书格式
2014/11/21 职场文书
承兑汇票延期证明
2015/06/23 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书
跟班学习心得体会(共6篇)
2016/01/23 职场文书
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android
Nginx虚拟主机的配置步骤过程全解
2022/03/31 Servers