pandas库疑难问题---3、loc方法和iloc方法的区别
pandas库疑难问题---3、loc方法和iloc方法的区别
一、总结
一句话总结:
loc方法是基于标签的,iloc方法是基于整数索引的
# iloc # 连续切片 print(data.iloc[1:3:1,1:3]) # 不连续 print(data.iloc[[1,3],[1,3]]) # loc # 连续切片 print(data.loc["A":"D":2,"z":"v":-1]) # 不连续 print(data.loc[["A","C"],["w","y"]])
二、loc方法和iloc方法的区别
博客对应课程的视频位置:3、loc方法和iloc方法的区别-范仁义-读书编程笔记
https://www.fanrenyi.com/video/39/380
loc方法是基于标签的,iloc方法是基于整数索引的
loc is label-based, which means that you have to specify rows and columns based on their row and column labels.
iloc is integer index based, so you have to specify rows and columns by their integer index like you did in the previous exercise.
In [1]:
import pandas as pd
import numpy as np
data = pd.DataFrame(np.arange(20).reshape((4,5)),index=list("ABCD"),columns=list("vwxyz"))
print(data)
1、iloc方法
In [2]:
# 连续切片
print(data.iloc[1:3:1,1:3])
In [3]:
# 不连续
print(data.iloc[[1,3],[1,3]])
2、loc方法
In [4]:
# 连续
print(data.loc["A":"C","w":"y"])
In [5]:
print(data.loc["A":"D":2,"z":"v":-1])
In [6]:
# 不连续
print(data.loc[["A","C"],["w","y"]])
需要注意的是:
在iloc使用索引定位的时候,因为是索引,所以,会按照索引的规则取值,如:[1:3] 会取出 1,2 这2个值。
但是loc按照label标签取值则不是这样的。如:["A":"C"] A,B,C 都会取出来。
In [ ]:
博客对应系列课程视频位置:
1、pandas打乱数据集-范仁义-读书编程笔记
https://www.fanrenyi.com/video/39/360
2、pandas切片操作-范仁义-读书编程笔记
https://www.fanrenyi.com/video/39/379
3、loc方法和iloc方法的区别-范仁义-读书编程笔记
https://www.fanrenyi.com/video/39/380
4、DataFrame类型转换成Numpy中ndarray-范仁义-读书编程笔记
https://www.fanrenyi.com/video/39/381
1、pandas打乱数据集-范仁义-读书编程笔记
https://www.fanrenyi.com/video/39/360
2、pandas切片操作-范仁义-读书编程笔记
https://www.fanrenyi.com/video/39/379
3、loc方法和iloc方法的区别-范仁义-读书编程笔记
https://www.fanrenyi.com/video/39/380
4、DataFrame类型转换成Numpy中ndarray-范仁义-读书编程笔记
https://www.fanrenyi.com/video/39/381