对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中用于去除空格的三个函数的使用小结
Apr 07 Python
用Python编写简单的定时器的方法
May 02 Python
Python脚本实现自动将数据库备份到 Dropbox
Feb 06 Python
python 3.5下xadmin的使用及修复源码bug
May 10 Python
Python实现将HTML转换成doc格式文件的方法示例
Nov 20 Python
Sanic框架路由用法实例分析
Jul 16 Python
对Python中Iterator和Iterable的区别详解
Oct 18 Python
python DataFrame 取差集实例
Jan 30 Python
机器学习实战之knn算法pandas
Jun 22 Python
pycharm设置鼠标悬停查看方法设置
Jul 29 Python
Django项目之Elasticsearch搜索引擎的实例
Aug 21 Python
Python编程中Python与GIL互斥锁关系作用分析
Sep 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的静态成员函数效率更高的原因
2014/06/13 PHP
Laravel 5 框架入门(三)
2015/04/09 PHP
Yii2实现让关联字段支持搜索功能的方法
2016/08/10 PHP
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
CCPry JS类库 代码
2009/10/30 Javascript
基于jquery的文本框与autocomplete结合使用(asp.net+json)
2012/05/30 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
基于jQuery实现最基本的淡入淡出效果实例
2015/02/02 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
jQuery 实现评论等级好评差评特效
2016/05/06 Javascript
jQuery中的通配符选择器使用总结
2016/05/30 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
jQuery的$.extend 浅拷贝与深拷贝
2017/03/08 Javascript
PHP 实现一种多文件上传的方法
2017/09/20 Javascript
Vue时间轴 vue-light-timeline的用法说明
2020/10/29 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
python执行get提交的方法
2015/04/29 Python
Python编程中装饰器的使用示例解析
2016/06/20 Python
快速了解Python相对导入
2018/01/12 Python
python3连接MySQL数据库实例详解
2018/05/24 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
python写文件时覆盖原来的实例方法
2020/07/22 Python
plt.figure()参数使用详解及运行演示
2021/01/08 Python
周仰杰(JIMMY CHOO)法国官方网站:闻名世界的鞋子品牌
2019/09/27 全球购物
试解释COMMIT操作和ROLLBACK操作的语义
2014/07/25 面试题
服务员岗位职责
2014/01/29 职场文书
大学生的创业计划书就该这么写
2014/01/30 职场文书
个人简历自我评价
2014/02/02 职场文书
文化建设工作方案
2014/05/12 职场文书
员工离职证明范本
2015/06/12 职场文书
幼儿园教学反思范文
2016/03/02 职场文书
mysql外连接与内连接查询的不同之处
2021/06/03 MySQL