对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中getattr函数使用方法 getattr实现工厂模式
Jan 20 Python
python中使用序列的方法
Aug 03 Python
Python中GIL的使用详解
Oct 03 Python
Pycharm+Scrapy安装并且初始化项目的方法
Jan 15 Python
python实现数据分析与建模
Jul 11 Python
Python+AutoIt实现界面工具开发过程详解
Aug 07 Python
用Python实现校园通知更新提醒功能
Nov 23 Python
Django表单提交后实现获取相同name的不同value值
May 14 Python
keras 自定义loss层+接受输入实例
Jun 28 Python
使用matplotlib的pyplot模块绘图的实现示例
Jul 12 Python
详解Python 3.10 中的新功能和变化
Apr 28 Python
Python实现双向链表
May 25 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 网页过期时间的控制代码
2009/06/29 PHP
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
PHP函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
2013/07/03 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
2015/10/08 PHP
在Javascript中为String对象添加trim,ltrim,rtrim方法
2006/09/22 Javascript
flash 得到自身url参数的代码
2009/11/15 Javascript
JavaScript Promise启示录
2014/08/12 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
ES6新特性之解构、参数、模块和记号用法示例
2017/04/01 Javascript
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
Vue 2.0入门基础知识之内部指令详解
2017/10/15 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
详解vue-cli 本地开发mock数据使用方法
2018/05/29 Javascript
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
vue实现一个炫酷的日历组件
2018/10/08 Javascript
JS实现transform实现扇子效果
2020/01/17 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
Python获取指定字符前面的所有字符方法
2018/05/02 Python
python实现换位加密算法的示例
2018/10/14 Python
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
python实现蒙特卡罗方法教程
2019/01/28 Python
python+selenium实现简历自动刷新的示例代码
2019/05/20 Python
Python_查看sqlite3表结构,查询语句的示例代码
2019/07/17 Python
关于tf.nn.dynamic_rnn返回值详解
2020/01/20 Python
初探CSS3中的calc()功能
2015/07/14 HTML / CSS
canvas学习笔记之绘制简单路径
2019/01/28 HTML / CSS
html5的新玩法——语音搜索
2013/01/03 HTML / CSS
美国狗旅行和户外用品领先供应商:kurgo
2020/08/18 全球购物
C#中的验证控件有几种
2014/03/08 面试题
暑期社会实践方案
2014/02/05 职场文书
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书
4S店收银员岗位职责
2015/04/07 职场文书
庆祝教师节主题班会
2015/08/17 职场文书