转自:https://blog.csdn.net/qq_21840201/article/details/80725433

### 随机生DataFrame 类型数据
import pandas as pd
import numpy as np
frame = pd.DataFrame(np.random.rand(4,4),index=list('abcd'),columns=list('ABCD'))
frame
  A B C D
a 0.560094 0.352686 0.954100 0.926277
b 0.563728 0.335517 0.232902 0.973932
c 0.482155 0.976618 0.565462 0.445108
d 0.477146 0.933353 0.291764 0.986668
1、loc     基于行标签和列标签(x_label、y_label)进行索引

### .loc先行后列,中间用逗号(,)分割,例如取 a 和 A 对应的数据
frame.loc['a','A']
0.56009394013943303
### 取前两行对应数据
frame.loc['a':'b',:]
  A B C D
a 0.560094 0.352686 0.954100 0.926277
b 0.563728 0.335517 0.232902 0.973932
### 取前两列对应数据
frame.loc[:,'A':'B']
  A B
a 0.560094 0.352686
b 0.563728 0.335517
c 0.482155 0.976618
d 0.477146 0.933353
### 取前两行和前两列对应数据
frame.loc['a':'b','A':'B']
  A B
a 0.560094 0.352686
b 0.563728 0.335517
### 上面的例子取的都是连续的行和列,若取第一行和第四行、第一列和第四列对应的数据,则
frame.loc[['a','d'],['A','D']]
上面的例子取的都是连续的行和列,若取第一行和第四行、第一列和第四列对应的数据,则
frame.loc[['a','d'],['A','D']]
  A D
a 0.560094 0.926277
d 0.477146 0.986668
2、 iloc   基于行索引和列索引(index,columns) 都是从 0 开始

如果数据的行标签和列标签名字太长或不容易记,则用 iloc 很方便,只需记标签对应的索引即可

### .loc先行后列,中间用逗号(,)分割,例如取 a 和 A 对应的数据
frame.iloc[0,0]
0.56009394013943303
### 取前两行对应数据
frame.iloc[0:2,:]
  A B C D
a 0.560094 0.352686 0.954100 0.926277
b 0.563728 0.335517 0.232902 0.973932
### 取前两列对应数据
frame.iloc[:,0:2]
A B
a 0.560094 0.352686
b 0.563728 0.335517
c 0.482155 0.976618
d 0.477146 0.933353
### 取前两行和前两列对应数据
frame.iloc[0:2,0:2]
  A B
a 0.560094 0.352686
b 0.563728 0.335517
### 上面的例子取的都是连续的行和列,若取第一行和第四行、第一列和第四列对应的数据,则
frame.iloc[[0,3],[0,3]]
上面的例子取的都是连续的行和列,若取第一行和第四行、第一列和第四列对应的数据,则
frame.iloc[[0,3],[0,3]]
  A D
a 0.560094 0.926277
d 0.477146 0.986668
3、 ix  基于标签或者索引(loc和iloc 的混合)

### 取前两行和前两列对应数据
frame.iloc[0:2,0:2]
  A B
a 0.560094 0.352686
b 0.563728 0.335517
### 取前两行和前两列对应数据
frame.ix['a':'b','A':'B']
  A B
a 0.560094 0.352686
b 0.563728 0.335517
官方文档新的python版本已经弃用 ix,建议使用 loc 和 iloc

.ix is deprecated. Please use
.loc for label based indexing or

---------------------
作者:求知者_123
来源:CSDN
原文:https://blog.csdn.net/qq_21840201/article/details/80725433
版权声明:本文为博主原创文章,转载请附上博文链接!

python pandas 中 loc & iloc 用法区别的更多相关文章

  1. Pandas的 loc iloc ix 区别

    先看代码: In [46]: import pandas as pd In [47]: data = [[1,2,3],[4,5,6]] In [48]: index = [0,1] In [49]: ...

  2. python pandas(ix & iloc &loc)

    python pandas(ix & iloc &loc) loc——通过行标签索引行数据 iloc——通过行号索引行数据 ix——通过行标签或者行号索引行数据(基于loc和iloc ...

  3. Pandas:loc iloc ix用法

    参考:Pandas中关于 loc \ iloc \ ix 用法的理解 相同点 使用形式都是 df.xxx[ para1 , para2 ] #xxx表示loc iloc ix#df表示一个DataFr ...

  4. Pandas中Loc用法总结

    摘自:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.loc.html 具体用法,假设数据源为: > ...

  5. Python numpy中矩阵的用法总结

    关于Python Numpy库基础知识请参考博文:https://www.cnblogs.com/wj-1314/p/9722794.html Python矩阵的基本用法 mat()函数将目标数据的类 ...

  6. Pandas 数据处理 | Datetime 在 Pandas 中的一些用法!

    Datatime 是 Python 中一种时间数据类型,对于不同时间格式之间的转换是比较方便的,而在 Pandas 中也同样支持 DataTime 数据机制,可以借助它实现许多有用的功能,例如 1,函 ...

  7. Python 3中bytes/string的区别

    原文:http://eli.thegreenplace.net/2012/01/30/the-bytesstr-dichotomy-in-python-3 python 3中最重要的新特性可能就是将文 ...

  8. 学习python,第四篇:Python 3中bytes/string的区别

    原文:http://eli.thegreenplace.net/2012/01/30/the-bytesstr-dichotomy-in-python-3 python 3中最重要的新特性可能就是将文 ...

  9. python pandas 中文件的读写——read_csv()读取文件

    read_csv()读取文件1.python读取文件的几种方式read_csv 从文件,url,文件型对象中加载带分隔符的数据.默认分隔符为逗号read_table 从文件,url,文件型对象中加载带 ...

随机推荐

  1. HDU3555 Bomb —— 数位DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 Bomb Time Limit: 2000/1000 MS (Java/Others)    M ...

  2. ODC(Orthogonal Defect Classification)简介——正交缺陷分类法

    Defect分析是软件开发和测试中一个重要的环节,ODC介绍了一种不同于大家常用的非常有效的defect分类及分析方法.这篇文章简单的向大家介绍了什么是ODC,以及如何在项目和产品开发中使用ODC来改 ...

  3. 特殊的shell变量:

    特殊的shell变量: $0 获取当前执行的shell脚本的文件名 $n 获取当前执行的shell脚本的第n个参数值,n=1..9 $* 获取当前shell的所有参数 “$1 $2 $3 …注意与$# ...

  4. 【重要】Selenium2+python自动化44-元素定位参数化(find_element)

    转:https://www.cnblogs.com/yoyoketang/p/6551274.html 前言 元素定位有八种方法,这个能看到这一篇的小伙伴都知道了,那么有没有一种方法,可以把八种定位合 ...

  5. Divide the Sequence

    Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission( ...

  6. UVaLive 6591 && Gym 100299L Bus (水题)

    题意:略. 析:不解释,水题. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include < ...

  7. python property的2种使用方法

    一.property类 class Person(): def __init__(self, name): self.set_name(name) def get_name(self): return ...

  8. bzoj 3232: 圈地游戏【分数规划+最小割】

    数组开小导致TTTTTLE-- 是分数规划,设sm为所有格子价值和,二分出mid之后,用最小割来判断,也就是判断sm-dinic()>=0 这个最小割比较像最大权闭合子图,建图是s像所有点连流量 ...

  9. bzoj 4240: 有趣的家庭菜园【树状数组+贪心】

    以为是逆序对数-- 实际上,原数组移动若干次后我们会得到一个新的下标序列,需要的移动次数是这个新下标序列的逆序对数 然后我们要让这个最小,考虑贪心先按h把下标排一遍序,然后每次询问到一种值的时候,对每 ...

  10. 11.6NOIP模拟赛

    [数据规模和限制] 对于全部测试数据,满足 N,M,K≤,W≤ 各个测试点的数据规模及特殊性质如下表. 测试点 N M K ≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤ 师 更多咨询:北京信息学窦老师 QQ ...