loc和iloc的区别,这两个有点容易混淆,因此需要特殊方式来加强记忆

总结:

  1. loc使用范围比iloc更广更实用,loc可以使用切片、名称(index,columns)、也可以切片和名称混合使用;但是loc不能使用不存在的索引来充当切片取值,像-1

  2. iloc只能用整数来取数

  3. 不借助loc和iloc

data=DataFrame(np.arange(16).reshape(4,4),index=list(“ABCD”),columns=list(“wxyz”))
print(data)

#可以直接取列索引,行索引却不行
aa=data[“w”]
bb=data[1:2] #行数值切片
cc=data[1:2,1:2] #不能同时切片,也就是中间不能有逗号

推荐使用loc

iloc: i可以看着int,因此iloc就是用数字(int)来取数据的.
iloc使用情况: 使用整数通过切片等方式取数
比如:

# 切片
# 下面两种方法有同样的效果; 表示取出df中1:5行(不包括5)和3:6列
1 df.iloc[1:5,3:6]
2 df.iloc[[1,2,3,4],[3,4,5]]
# 另外 df.iloc[0]、df.iloc[1]、df.iloc[-1] 分别表示第一行、第二行、最后一行
# 同理df.iloc[:,0]、df.iloc[:,1]、df.iloc[:,-1] 分别表示第一列、第二列、最后一列

loc的使用范围要远高于iloc, loc也能够做到iloc的切片取数, 除了df.loc[-1]
loc使用情况:
使用切片、索引、列名称查找
按条件(bool)查找

比如:

pandas中iloc、loc的用法和区别
时间:2020-03-17
本文章向大家介绍pandas中iloc、loc的用法和区别,主要包括pandas中iloc、loc的用法和区别使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。loc和iloc的区别,这两个有点容易混淆,因此需要特殊方式来加强记忆总结:1. loc使用范围比iloc更广更实用,loc可以使用切片、名称(index,columns)、也可以切片和名称混合使用;但是loc不能使用不存在的索引来充当切片取值,像-12. iloc只能用整数来取数推荐使用lociloc: i可以看着int,因此iloc就是用数字(int)来取数据的.
iloc使用情况: 使用整数通过切片等方式取数
比如:# 切片
# 下面两种方法有同样的效果; 表示取出df中1:5行(不包括5)和3:6列
1 df.iloc[1:5,3:6]
2 df.iloc[[1,2,3,4],[3,4,5]]
# 另外 df.iloc[0]、df.iloc[1]、df.iloc[-1] 分别表示第一行、第二行、最后一行
# 同理df.iloc[:,0]、df.iloc[:,1]、df.iloc[:,-1] 分别表示第一列、第二列、最后一列loc的使用范围要远高于iloc, loc也能够做到iloc的切片取数, 除了df.loc[-1]
loc使用情况:
使用切片、索引、列名称查找
按条件(bool)查找比如:1 # 切片
2 hy_data.loc[2:4,]
3 hy_data.loc[[0,1,2,3],:]
4 # 切片和名称混合
5 hy_data.loc[2:4,'用户编号']
6 # 按条件取数
7 # 表示取出df中“行业分类”列值的长度等于6的所有行
8 hy_data.loc[hy_data['行业分类'].str.len() == 6, :]

loc——通过行标签索引行数据
iloc——通过行号索引行数据
ix——通过行标签或者行号索引行数据(基于loc和iloc 的混合)
标签切片,如’a’:‘c’,与序列切片如0:2不同,后者不包含index=2的元素,前者包含结束标签’c’所在的行。
布尔类型数组作为标签,例如[True, False]等价于[‘a’,‘c’]

1.loc

import numpy as np
import pandas as pd
from pandas import *
from numpy import *data=DataFrame(np.arange(16).reshape(4,4),index=list("ABCD"),columns=list("wxyz"))
print(data)
#    w   x   y   z
#A   0   1   2   3
#B   4   5   6   7
#C   8   9  10  11
#D  12  13  14  15#loc
#行的选取
print(data.loc["A"])
print(type(data.loc["A"]))
#w    0
#x    1
#y    2
#z    3
#Name: A, dtype: int32
#<class 'pandas.core.series.Series'>print(data.loc[["A"]])
print(type(data.loc[["A"]]))
#   w  x  y  z
#A  0  1  2  3
#<class 'pandas.core.frame.DataFrame'>
#综上,[]返回Series,[[]]返回DataFrameprint(data.loc["A","w"])
print(type(data.loc["A","w"]))
#0
#<class 'numpy.int32'>print(data.loc[:,"w"])
print(type(data.loc[:,"w"]))
#A     0
#B     4
#C     8
#D    12
#Name: w, dtype: int32
#<class 'pandas.core.series.Series'>print(data.loc["A":"C"])
print(type(data.loc["A":"C"]))
#   w  x   y   z
#A  0  1   2   3
#B  4  5   6   7
#C  8  9  10  11
#<class 'pandas.core.frame.DataFrame'>print(data.loc["A":"C","w":"y"])
print(type(data.loc["A":"C","w":"y"]))
#   w  x   y
#A  0  1   2
#B  4  5   6
#C  8  9  10
#<class 'pandas.core.frame.DataFrame'>print(data.loc[["A","C"],["w","y"]])
print(type(data.loc[["A","C"],["w","y"]]))
#   w   y
#A  0   2
#C  8  10
#<class 'pandas.core.frame.DataFrame'>print(data.loc[:,["w","y"]])
print(type(data.loc[:,["w","y"]]))
#    w   y
#A   0   2
#B   4   6
#C   8  10
#D  12  14
#<class 'pandas.core.frame.DataFrame'>#列的选取
print(data["w"])#等同于print(data.loc[:,"w"])
#A     0
#B     4
#C     8
#D    12
#Name: w, dtype: int32
print(data.loc[:,"w"])
#A     0
#B     4
#C     8
#D    12
#Name: w, dtype: int32
print(data["w"].equals(data.loc[:,"w"]))#True#根据特殊条件选取行列
print(data["w"]>5)
#A    False
#B    False
#C     True
#D     True
#Name: w, dtype: boolprint(data.loc[data["w"]>5])
#    w   x   y   z
#C   8   9  10  11
#D  12  13  14  15
print(data.loc[data["w"]>5,"w"])
print(type(data.loc[data["w"]>5,"w"]))
#C     8
#D    12
#Name: w, dtype: int32
#<class 'pandas.core.series.Series'>
print(data.loc[data["w"]>5,["w"]])
print(type(data.loc[data["w"]>5,["w"]]))
#    w
#C   8
#D  12
#<class 'pandas.core.frame.DataFrame'>
print(data["w"]==0)
print(data.loc[lambda data:data["w"]==0])
print(type(data.loc[lambda data:data["w"]==0]))
#A     True
#B    False
#C    False
#D    False
#Name: w, dtype: bool
#   w  x  y  z
#A  0  1  2  3
#<class 'pandas.core.frame.DataFrame'>#loc赋值
print(data)
#    w   x   y   z
#A   0   1   2   3
#B   4   5   6   7
#C   8   9  10  11
#D  12  13  14  15
data.loc[["A","C"],["w","x"]]=999
print(data)
#     w    x   y   z
#A  999  999   2   3
#B    4    5   6   7
#C  999  999  10  11
#D   12   13  14  15

2.iloc

data=DataFrame(np.arange(16).reshape(4,4),index=list("ABCD"),columns=list("wxyz"))
print(data)
#    w   x   y   z
#A   0   1   2   3
#B   4   5   6   7
#C   8   9  10  11
#D  12  13  14  15print(data.iloc[0])
print(type(data.iloc[0]))
#w    0
#x    1
#y    2
#z    3
#Name: A, dtype: int32
#<class 'pandas.core.series.Series'>
#print(data.iloc["A"])报错#print(data.loc[0])报错
print(data.loc[["A"]])
print(type(data.loc["A"]))
#   w  x  y  z
#A  0  1  2  3
#<class 'pandas.core.series.Series'>

3.iloc和loc差别
iloc是按照行数取值,而loc按着index名取值

data=DataFrame(np.arange(16).reshape(4,4),index=list("1234"),columns=list("wxyz"))
print(data)
#    w   x   y   z
#1   0   1   2   3
#2   4   5   6   7
#3   8   9  10  11
#4  12  13  14  15
print(data.iloc[0])
#w    0
#x    1
#y    2
#z    3
#Name: 1, dtype: int32
#print(data.loc[0])报错

iloc loc 区别相关推荐

  1. Python:loc和iloc的区别

    loc和iloc的区别 pandas以类似字典的方式来获取某一列的值,比如df['A'],这会得到df的A列.如果我们对某一行感兴趣呢?这个时候有两种方法,一种是iloc方法,另一种方法是loc方法. ...

  2. Python pandas 中loc函数的意思及用法,及跟iloc的区别

    Python pandas 中loc函数的意思及用法,及跟iloc的区别 loc和iloc的意思 loc和iloc的区别及用法展示 参考文献 loc和iloc的意思 首先,loc是location的意 ...

  3. python loc iloc,Python pandas loc用法与iloc区别 聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明...

    想了解聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明的相关内容吗,Rainpages在本文为您仔细讲解Python pandas loc用法与iloc区别的相关知识和一些C ...

  4. pandas 中loc和iloc的区别、用法

    loc和iloc的意思: loc是location的意思,和iloc中i的意思是指integer,所以它只接受整数作为参数. 具体可见: loc: iloc: loc为Selection by Lab ...

  5. iloc, loc, at, iat的应用

    在pandas的应用中,有多种切片的方法,针对标签和位置,有不同的应用. 直接取行或列, 借助loc, iloc, at, iat,其中loc,iloc既可以取多值,也可以取单一数值,而at,iat只 ...

  6. python iloc函数_python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)

    df是一个dataframe,列名为A B C D 具体值如下: A B C D 0 ss 小红 8 1 aa 小明 d 4 f f 6 ak 小紫 7 dataframe里的属性是不定的,空值默认为 ...

  7. python中iloc的详细用法_python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)...

    df是一个dataframe,列名为A B C D 具体值如下: A B C D 0 ss 小红 8 1 aa 小明 d 4 f f 6 ak 小紫 7 dataframe里的属性是不定的,空值默认为 ...

  8. Python学习.iloc和.loc区别、联系与用法

    最近接触到数据科学,需要对一些数据表进行分析,观察到代码中一会出现loc一会又出现iloc,下面对两者的用法给出我的一些理解. 1.联系 (1)操作对象相同:loc和iloc都是对DataFrame类 ...

  9. loc与iloc的区别

    使用pandas过程中,常用到切片操作,比如df.loc[],df.iloc[].这两个方法的细节或区别主要在两个点: loc[]方法针对显性的行列索引,iloc[]方法针对的是隐性的行列索引 imp ...

最新文章

  1. myeclispe快捷键一\(≧▽≦)/终于也收藏了
  2. 使用CAtlRegExp正则表达式检查浮点数输入
  3. 有一天我突然接到他的电话
  4. vue ---- 实现手机端(左滑 删除。右划 正常)
  5. 拓端tecdat|R语言高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据
  6. latex数学符号加粗_LaTex数学公式符号整理
  7. steam网络相关问题-社区错误代码118/无法自动登陆/短期内来自您网络的失败登录过多/无法连接至steam网络(2021/2/18更新)
  8. Java中frame和panel区别,JFrame 和JPanel 的关系-区别(学习笔记)
  9. excel冻结窗格参与排序_冻结窗格以在Excel中隐藏行
  10. Java练习——小游戏 模拟雷电
  11. 复制字符串中的元音字母
  12. java jframe 设置背景图片_为jframe窗口设置背景图片
  13. 开启 Kerberos 安全的大数据环境中,Yarn Container 启动失败导致作业失败
  14. Java输出4位数整数,输出这个数的千位,百位,十位,个位
  15. WIN10便签怎么样开启免打扰时间 如何设置休息日消息免打扰
  16. UE4 VR 重置摄像机朝向
  17. win7打开仅计算机黑屏,黑屏只剩鼠标指针,详解win7打开电脑黑屏只剩鼠标指针的解决教程...
  18. tcrt5000循迹模块
  19. 【批处理DOS-CMD命令-汇总和小结】-上网和网络通信相关命令(netsh)
  20. 【Redis核心知识 八】Redis集群之Cluster模式及集群搭建

热门文章

  1. 科学处理java.lang.StackOverflowError: null异常
  2. 2021-2027年中国市医疗电子场投资分析及前景预测报告
  3. 2022-2028年中国丝印硅胶行业市场深度分析及投资前景趋势报告
  4. 使用python建立简单的单链表
  5. 后端开发之libcurl库编译与安装
  6. 虚拟机网络连接方式linuxcentos
  7. pytorch的backward
  8. NLP.TM | GloVe模型及其Python实现
  9. 如何运行具有奇点的NGC深度学习容器
  10. 2021年大数据Flink(二十一):​​​​​​​案例三 会话窗口