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

Python学习.iloc和.loc区别、联系与⽤法
最近接触到数据科学,需要对⼀些数据表进⾏分析,观察到代码中⼀会出现loc⼀会⼜出现iloc,下⾯对两者的⽤法给出我的⼀些理解。
1.联系
(1)操作对象相同:loc和iloc都是对DataFrame类型进⾏操作;
(2)完成⽬的相同:⼆者都是⽤于选取DataFrame中对应⾏或列中的元素。
2.区别
loc和iloc索引的⾏列标签类型不同。
iloc使⽤顺序数字来索引数据,⽽不能使⽤字符型的标签来索引数据;注意:这⾥的顺序数字是指从0开始计数!
loc使⽤实际设置的索引来索引数据。但⾏列名为数字时,loc也可以索引数字,但这⾥的数字不⼀定从0开始编号,是对应具体⾏列名的数字!
3.⽤法
铆压机下⾯⽤代码来讲解两者的⽤法。
3.1⾏列全为从0开始顺序编号
import pandas as pd
import numpy as np
a = np.arange(12).reshape(3,4)
#将a转化为DataFrame类型
df = pd.DataFrame(a)
#展⽰df板栗剥壳机
df
由于未给df的⾏列命名,默认从0开始编号,所以这个时候使⽤loc和iloc结果是⼀样的。
索引为⼀个数,默认输出
print(df.loc[0])#输出第0⾏元素
print(df.iloc[0])#输出第0⾏元素
两者输出结果都为:
0    0
1    1
2    2
3    3
Name: 0, dtype: int32
输出结果为df第0⾏元素,结果中第⼀列表⽰列名,第⼆列表⽰具体的值。如果只需要输出某⼀列,输⼊df.loc[:,0]表⽰输出第0列。如果需要输出第0到2列的数据。
#⽅式1
df.loc[:,0:2]#可把loc理解为遍历字符串类型,0:2则表⽰标签为0,1,2三列
#⽅式2
df.iloc[:,0:3]#iloc遍历的数数字,python中0:3对应0,1,和2
输出结果均为:
3.2有⼀⾏或列不是从0顺序编号
#把⾏标签换成其他数字编号
df.index=[2,5,7]
uvlo电路
df.loc[2]
此时df变为:
输出结果为:
0    0
1    1
2    2
3    3
Name: 2, dtype: int32
输出结果对应的是列标签为“2”所在的⾏。
我们继续⽤df.iloc[2]输出结果:
送煤气罐0    8
1    9
2    10
3    11
Name: 7, dtype: int32
可见输出的是第2⾏的数据。
在这⾥我们能⼤概对loc和iloc的⽤法有了⼀定的了解。
3.3⾏或者列为⾮数字标签
#把⾏标签转化为⾮数字类型
df.index=['a','b','c']
#输出第a、b⾏,第0到2列的数据
#⽅式1
df.loc[['a','b'],0:2]#可把loc理解为遍历字符串类型,0:2则表⽰标签为0,1,2三列#⽅式2
df.iloc[0:2,0:3]#iloc遍历的是数字,0:2表⽰的是0和1,0:3表⽰0,1,2。
两者输出结果均为:
3.4 其他⽤法
⼀般情况下,表的⾏为从0编号的数字类型,列为具体的字符串类型。⾏的数字容易确定,列的列名容易确定。
#将⾏换成0 1 2编号
df.index=[0,1,2]
#列标签换成A B C D
缺氧池
df.iloc[1]['A']#实现输出第1⾏第A列的数据
输出结果为4。
如果要输出第1⾏,第AB列,使⽤df.iloc[1][['A','B']],这⾥⼀定要注意'A','B'是作为⼀个列表输⼊的,右侧⼀共有两个中括号。
电视制作输出结果:
A    4
B    5
Name: 1, dtype: int32
df.iloc[1][['A','B']]等价于df.iloc[1,0:2],但是很多情况下我们不知道具体列名对应的数字,所以采⽤第⼀种⽅法可以提⾼编程效率。

本文发布于:2024-09-23 01:29:23,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/327830.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:输出   数字   结果
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议