对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中的pydoc模块和distutils模块
Apr 13 Python
Python2.x利用commands模块执行Linux shell命令
Mar 11 Python
深入理解Python对Json的解析
Feb 14 Python
Python3匿名函数用法示例
Jul 25 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
Feb 19 Python
在python tkinter中Canvas实现进度条显示的方法
Jun 14 Python
解决yum对python依赖版本问题
Jul 05 Python
Python操作SQLite数据库过程解析
Sep 02 Python
python 图片二值化处理(处理后为纯黑白的图片)
Nov 01 Python
VSCode中自动为Python文件添加头部注释
Nov 14 Python
利用python绘制数据曲线图的实现
Apr 09 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
Apr 17 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
通过html表格发电子邮件
2006/10/09 PHP
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
Redis基本知识、安装、部署、配置笔记
2015/03/05 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
使用JQuery 加载页面时调用JS的实现方法
2016/05/30 Javascript
Bootstrap使用基础教程详解
2016/09/05 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
2016/12/20 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
深入理解vue中的$set
2017/06/01 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2017/12/26 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
2018/01/12 Javascript
傻瓜式vuex语法糖kiss-vuex整理
2018/12/21 Javascript
优雅的elementUI table单元格可编辑实现方法详解
2018/12/23 Javascript
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
Python用 KNN 进行验证码识别的实现方法
2018/02/06 Python
Python 对输入的数字进行排序的方法
2018/06/23 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
python制作英语翻译小工具代码实例
2019/09/09 Python
通过python 执行 nohup 不生效的解决
2020/04/16 Python
python开发入门——set的使用
2020/09/03 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
10张动图学会python循环与递归问题
2021/02/06 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
CSS3实现伪类hover离开时平滑过渡效果示例
2017/08/10 HTML / CSS
Nike爱尔兰官方网站:Nike.com (IE)
2018/03/12 全球购物
中层竞聘演讲稿
2014/01/09 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
小学生读书活动总结
2014/06/30 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
大学生个人简历自荐信
2015/03/06 职场文书
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python
html+css实现滚动到元素位置显示加载动画效果
2021/08/02 HTML / CSS