对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实现的监测服务器硬盘使用率脚本分享
Nov 07 Python
Python利用ansible分发处理任务
Aug 04 Python
python文件与目录操作实例详解
Feb 22 Python
python dict.get()和dict['key']的区别详解
Jun 30 Python
django使用图片延时加载引起后台404错误
Apr 18 Python
Python英文文本分词(无空格)模块wordninja的使用实例
Feb 20 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
Jul 03 Python
解决Python发送Http请求时,中文乱码的问题
Apr 30 Python
python 调用API接口 获取和解析 Json数据
Sep 28 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
Nov 02 Python
Python3中的tuple函数知识点讲解
Jan 03 Python
Python实现天气查询软件
Jun 07 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邮件类
2007/01/03 PHP
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
PHP中图片等比缩放的实例
2013/03/24 PHP
php获取QQ头像并显示的方法
2014/12/23 PHP
解决laravel session失效的问题
2019/10/14 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
20行代码实现的一个CSS覆盖率测试脚本
2013/07/07 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
JavaScript模拟重力状态下抛物运动的方法
2015/03/03 Javascript
JavaScript数据类型学习笔记分享
2016/09/01 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
canvas实现粒子时钟效果
2017/02/06 Javascript
Angularjs2不同组件间的通信实例代码
2017/05/06 Javascript
js随机生成一个验证码
2017/06/01 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
vue中post请求以a=a&b=b 的格式写遇到的问题
2018/04/27 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
2019/08/20 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
2020/08/05 Javascript
Python 数据结构之队列的实现
2017/01/22 Python
Python Flask基础教程示例代码
2018/02/07 Python
python3实现随机数
2018/06/25 Python
python3 面向对象__类的内置属性与方法的实例代码
2018/11/09 Python
对Python中class和instance以及self的用法详解
2019/06/26 Python
python 遍历pd.Series的index和value
2019/11/26 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
Pyinstaller加密打包应用的示例代码
2020/06/11 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
英国健身专家:WIT Fitness
2021/02/09 全球购物
施惠特软件测试面试题以及笔试题
2015/05/13 面试题
计算机网络专业自荐信
2014/07/04 职场文书
代理人委托书
2014/08/01 职场文书
车位出租协议书范本
2016/03/19 职场文书