对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 相关文章推荐
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
Jan 19 Python
python使用BeautifulSoup分析网页信息的方法
Apr 04 Python
Python检测网站链接是否已存在
Apr 07 Python
Python中.py文件打包成exe可执行文件详解
Mar 22 Python
Go/Python/Erlang编程语言对比分析及示例代码
Apr 23 Python
基于python 爬虫爬到含空格的url的处理方法
May 11 Python
python爬虫之线程池和进程池功能与用法详解
Aug 02 Python
Python使用字典的嵌套功能详解
Feb 27 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
Sep 18 Python
django框架F&Q 聚合与分组操作示例
Dec 12 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
Mar 20 Python
解决jupyter运行pyqt代码内核重启的问题
Apr 16 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
yii框架中的Url生产问题小结
2012/01/16 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
2015/08/23 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
PHP多维数组排序array详解
2017/11/21 PHP
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
重写document.write实现无阻塞加载js广告(补充)
2014/12/12 Javascript
JavaScript获取表单enctype属性的方法
2015/04/02 Javascript
JQuery删除DOM节点的方法
2015/06/11 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
浅谈javascript获取元素transform参数
2015/07/24 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
JavaScript常用内置对象用法分析
2019/07/09 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
基于Django模板中的数字自增(详解)
2017/09/05 Python
Python双向循环链表实现方法分析
2018/07/30 Python
python  创建一个保留重复值的列表的补码
2018/10/15 Python
基于Python实现大文件分割和命名脚本过程解析
2019/09/29 Python
python中property和setter装饰器用法
2019/12/19 Python
np.dot()函数的用法详解
2020/01/17 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
matplotlib.pyplot.matshow 矩阵可视化实例
2020/06/16 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
改变 Python 中线程执行顺序的方法
2020/09/24 Python
西班牙英格列斯百货英国官网:El Corte Inglés英国
2017/10/30 全球购物
viagogo意大利票务平台:演唱会、体育比赛、戏剧门票
2018/01/26 全球购物
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
爱心捐款倡议书范文
2014/05/12 职场文书
安全施工标语
2014/06/07 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
2014年后勤管理工作总结
2014/12/01 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
中学感恩教育活动总结
2015/05/05 职场文书
结婚典礼致辞
2015/07/28 职场文书