对pandas的层次索引与取值的新方法详解
作者:追梦小乐 发布时间:2023-01-20 00:39:55
标签:pandas,索引,取值
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)
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']))
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']['张思思'])
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'])
来源:https://blog.csdn.net/u010157004/article/details/79588022
0
投稿
猜你喜欢
- 本文使用css结合js技术给网页背景background 插入flash播放器播放音乐,想法很大胆,呵呵!刚刚乱试一翻搞出这个,有意思吗?请
- 本文实例讲述了Python单链表原理与实现方法。分享给大家供大家参考,具体如下:Python实现单链表关于链表链表(Linked List)
- 原文:Five quick JavaScript tips真是五个很quick的小提示:1.只在<form>元素上使用submi
- 同伪类的方式类似,伪元素通过对插人到文档中的虚构元素进行触发,从而达到某种效果。在CSS1里,有两个伪元素,即:first-letter和f
- 1.在查询分析器理启动或停止SQL Agent服务启动:use mastergoxp_cmdshell 'net start SQL
- 问:如何在SQL Enterprise Manager version 6.5下操作SQL Server 6.0的服务器?答:在使用SQL
- '************************************* '读取文件 &
- 自从jQuery搞出特性侦探这东东,西方从来没有如此狂热研究浏览器。在以前javascript与DOM遍地是bug,美工主宰前端的年代,人们
- 首先还是应该科普下函数参数传递机制,传值和传引用是什么意思?函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进
- 查看逻辑读前10的SQL:set linesize 300;set pagesize 300;set long 50000;SELECT *
- 结合这个例子分析一下结果:结合以往C语言的基础,画了一张图来解释为什么会有上面这些值的出现。先查看下Go中的这两个运算符是啥吧。①对于所有带
- Javascript 选择器(selector engine)似乎从 jQuery 流行以来就大行其道,改变了原有 Javascript 选
- 批量修改linux服务器密码,同时生成execl表格#!/usr/bin/env python#coding:utf8#随机生成自定义长度密
- OL定义有序列表的时候,除非指定list-style-position:inside;,否则文字和前导符是有缩进的。但有的时候,OL定义的列
- 导语由于之前遇到过几次有关于参数类型的坑,以及经常容易把一些参数类型搞混淆,现在做一下有关参数类型的总结记录以及对之前踩坑经历的分析。参数类
- 近期对数据库进行巡检,发现数据库业务用户(非 SYS/Public)下存在失效对象。对失效对象进行分析,主要包括失效的视图、物化视图、函数、
- icech: 在制作网页的时候,常常要遇到制作虚线表格的问题,下面的文章就能解决这个问题。方法一:作一个1X2的图。半黑半白,再利用表格作成
- 本文实例讲述了PHP共享内存使用与信号控制。分享给大家供大家参考,具体如下:共享内存共享内存的使用主要是为了能够在同一台机器不同的进程中共享
- 这个跟ping那个差不多,ping的那个脚本就是通过这个改了下,大体一致,不过telnet的不需要判断返回的字符串。快一些这里具体需要tel
- 目录1、简单循环 Simple loops2、简单循环但是使用了线程Simple loops but threaded3、定时调度库 Sch