对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根据时间生成mongodb的ObjectId的方法
Mar 13 Python
Python import用法以及与from...import的区别
May 28 Python
RC4文件加密的python实现方法
Jun 30 Python
解读! Python在人工智能中的作用
Nov 14 Python
更换Django默认的模板引擎为jinja2的实现方法
May 28 Python
基于python实现学生管理系统
Oct 17 Python
在PyCharm中三步完成PyPy解释器的配置的方法
Oct 29 Python
在Python中os.fork()产生子进程的例子
Aug 08 Python
Pytorch中Tensor与各种图像格式的相互转化详解
Dec 26 Python
增大python字体的方法步骤
Jul 05 Python
Python利用matplotlib绘制折线图的新手教程
Nov 05 Python
2021年最新用于图像处理的Python库总结
Jun 15 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中url函数介绍及使用示例
2014/02/13 PHP
php常用数学函数汇总
2014/11/21 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
2015/12/10 PHP
从新浪弄下来的全屏广告代码 与使用说明
2007/03/15 Javascript
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
浅谈jQuery事件绑定原理
2015/01/02 Javascript
基于jQuery实现的仿百度首页滑动选项卡效果代码
2015/11/16 Javascript
window.open打开窗口被拦截的快速解决方法
2016/08/04 Javascript
js数组操作方法总结(必看篇)
2016/11/22 Javascript
JQuery学习总结【一】
2016/12/01 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
详解vue-router 初始化时做了什么
2018/06/11 Javascript
vue组件之间数据传递的方法实例分析
2019/02/12 Javascript
vue实现菜单切换功能
2019/05/08 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
在Python的Django框架中为代码添加注释的方法
2015/07/16 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
python开发准备工作之配置虚拟环境(非常重要)
2019/02/11 Python
Python生成rsa密钥对操作示例
2019/04/26 Python
python对象销毁实例(垃圾回收)
2020/01/16 Python
Python 实现进度条的六种方式
2021/01/06 Python
css3实现小箭头各种图形效果
2020/07/08 HTML / CSS
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
PHP面试题附答案
2015/11/28 面试题
卫校护理专业毕业生求职信
2013/11/26 职场文书
母亲节演讲稿
2014/05/27 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书
win10电脑老是死机怎么办?win10系统老是死机的解决方法
2022/08/05 数码科技