Python 数据分析 - 索引和选择数据
loc,iloc,ix三者间的区别和联系
loc
.loc is primarily label based, but may also be used with a boolean array.
就是说,loc方法主要是用label来选择数据的。[1]
- A single label, e.g. 5 or 'a', (note that 5 is interpreted as a label of the index. This use is not an integer position along the index)
- A list or array of labels ['a', 'b', 'c']
- A slice object with labels 'a':'f', (note that contrary to usual python slices, both the start and the stop are included!)
- A boolean array
总的形式还是要保持的df[xx:xx,xx:xx],只不过这里边可以不用切片,但是中间的,还是很关键的。可以不写,,那么,就表示取某一行。但是,不能表示取某一列。
import pandas as pd
import numpy as np
test=pd.DataFrame(np.random.randn(20).reshape(4,5),index=['A','B','C','D'],columns=['E','F','G','H','I'])
test
Out[4]:
E F G H I
A -0.833316 -1.982666 1.055594 0.781759 -0.107631
B -1.514709 -1.422883 0.204399 -0.487639 -1.652785
C -0.424735 0.400529 -0.786582 0.855885 0.059894
D 2.016221 -1.314878 -1.745535 -0.907778 0.834966
test.loc['A']
Out[5]:
E -0.833316
F -1.982666
G 1.055594
H 0.781759
I -0.107631
Name: A, dtype: float64
test.loc['E']
KeyError: 'the label [E] is not in the [index]'
#看见了吧,是“闭区间”
test.loc['A':'B','E':'F']
Out[8]:
E F
A -0.833316 -1.982666
B -1.514709 -1.422883
label切片选择时,貌似是“闭区间”,:后边的也是包含进去的。
iloc
.iloc is primarily integer position based (from 0 to length-1 of the axis), but may also be used with a boolean array.
iloc主要就是基于position的选择。注意了,这里的position选择是一种”左闭右开“区间,意思就是df[m:n]只选择m:n-1行的数据。
- An integer e.g. 5
- A list or array of integers [4, 3, 0]
- A slice object with ints 1:7
- A boolean array
import pandas as pd
import numpy as np
test=pd.DataFrame(np.random.randn(20).reshape(4,5),index=['A','B','C','D'],columns=['E','F','G','H','I'])
test
Out[4]:
E F G H I
A -0.833316 -1.982666 1.055594 0.781759 -0.107631
B -1.514709 -1.422883 0.204399 -0.487639 -1.652785
C -0.424735 0.400529 -0.786582 0.855885 0.059894
D 2.016221 -1.314878 -1.745535 -0.907778 0.834966
#看见了吧,是“左闭右开”区间呀!
test.iloc[0:1,0:1]
Out[10]:
E
A -0.833316
ix
.ix supports mixed integer and label based access. It is primarily label based, but will fall back to integer positional access unless the corresponding axis is of integer type.
ix就是一种集大成者的选择方法呀!既支持position选择,也支持label选择。主要是label选择。
import pandas as pd
import numpy as np
test=pd.DataFrame(np.random.randn(20).reshape(4,5),index=['A','B','C','D'],columns=['E','F','G','H','I'])
test
Out[4]:
E F G H I
A -0.833316 -1.982666 1.055594 0.781759 -0.107631
B -1.514709 -1.422883 0.204399 -0.487639 -1.652785
C -0.424735 0.400529 -0.786582 0.855885 0.059894
D 2.016221 -1.314878 -1.745535 -0.907778 0.834966
#下面的`ix`是不是和`loc`作用差不多啊~
test.ix['A':'B','E':'F']
Out[12]:
E F
A -0.833316 -1.982666
B -1.514709 -1.422883
#下面的是和`iloc`差不多了
test.ix[0:1,0:1]
Out[11]:
E
A -0.833316
但是需要注意的是,当index或者columns是整数时,ix索引其实是按label选择的,因此,是闭区间的。
参考
发现还是官方文档说的最详细啊!希望以后有机会多看看这里的内容~
Python 数据分析 - 索引和选择数据的更多相关文章
- pandas 学习 第14篇:索引和选择数据
数据框和序列结构中都有轴标签,轴标签的信息存储在Index对象中,轴标签的最重要的作用是: 唯一标识数据,用于定位数据 用于数据对齐 获取和设置数据集的子集. 本文重点关注如何对序列(Series)和 ...
- Pandas索引和选择数据
在本章中,我们将讨论如何切割和丢弃日期,并获取Pandas中大对象的子集. Python和NumPy索引运算符"[]"和属性运算符".". 可以在广泛的用例中快 ...
- Python数据分析:大众点评数据进行选址
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:砂糖侠 如果你处于想学Python或者正在学习Python,Pyth ...
- Pandas | 13 索引和选择数据
Pandas现在支持三种类型的多轴索引; 编号 索引 描述 1 .loc() 基于标签 2 .iloc() 基于整数 3 .ix() 基于标签和整数 .loc() Pandas提供了各种方法来完成基于 ...
- Python数据分析之双色球高频数据统计
Step1:基础数据准备(通过爬虫获取到),以下是从第一期03年双色球开奖号到今天的所有数据整理,截止目前一共2549期,balls.txt 文件内容如下 : 备注:想要现成数据的可以给我发邮件哟~ ...
- python数据分析之csv/txt数据的导入和保存
约定: import numpy as np import pandas as pd 1 2 3 一.CSV数据的导入和保存 csv数据一般格式为逗号分隔,可在excel中打开展示. 示例 data1 ...
- Python 数据分析—第七章 数据归整:清理、转换、合并、重塑
一.数据库风格的Dataframe合并 import pandas as pd import numpy as np df1 = pd.DataFrame({'1key':['b','b','a',' ...
- python数据分析第二版:数据加载,存储和格式
一:读取数据的函数 1.读取csv文件 import numpy as np import pandas as pd data = pd.read_csv("C:\\Users\\Admin ...
- Python数据分析之全球人口数据
这篇文章用pandas对全球的人口数据做个简单分析.我收集全球各国1960-2019年人口数据,包含男女和不同年龄段,共6个文件. pop_total.csv: 各国每年总人口 pop_female. ...
随机推荐
- 如何修改Xampp服务器上的mysql密码(图解)
https://www.jb51.net/article/111289.htm https://www.cnblogs.com/Leequik/p/5323795.html 1.点击MySQL的adm ...
- 列表选择模式:单选、按shift、按shift或ctrl
2018-10-29 21:23:16 开始写 import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing ...
- codeforces 979B Treasure Hunt
题意: 给出三个字符串,每个字符串长度相同,给出n,要求在n轮内,每一个字符串必须改变一个字符. 问最后哪个字符串中拥有最多相同的字符,即美丽度最大. 思路: 首先,很不容易想到的一点是从a变到a,有 ...
- java一维数组作业
package zuoYe; import java.util.Scanner; public class MaxSubArray { public static void main(String[] ...
- Web处理方式
ProcessRequest 方法简称 PR方法 PR方法内部调用Page_Load方法 MVC设计模式 Model是指要处理的业务代码和数据操作代码 View视图主要是指的跟用户打交道并能够展示 ...
- 导航,头部,CSS基础
1.制作自己的导航条. 2.HTML头部元素: <base> 定义了页面链接标签的默认链接地址 <style> 定义了HTML文档的样式文件 <link> 定 ...
- CS229 - MachineLearning - 12 强化学习笔记
Ng的机器学习课,课程资源:cs229-课件 网易公开课-视频 问题数学模型: 马尔科夫过程五元组{S.a.Psa.γ.R},分别对应 {状态.行为.状态s下做出a行为的概率.常数.回报}. 一 ...
- curl 命令简介
curl命令用于在命令行中发送HTTP请求: curl -i -H 'content-type: application/json' -X POST -d '{"name":&qu ...
- django models数据库操作
一.数据库操作 1.创建model表 基本结构 1 2 3 4 5 6 from django.db import models class userinfo(models.M ...
- SQL中的 group by 1, order by 1 语句
看到group by 1,2 和 order by 1, 2.看不懂,google,搜到了Stack Overflow 上有回答 What does SQL clause “GROUP BY 1” m ...