pandas学习之df.iloc[]

pandas 学习之df.iloc[]

df.iloc[]的用法和df.loc[]类似,最大的区别在于,loc是基于行列的标签进行检索,而iloc是基于位置进行检索。实际使用上iloc比loc会好用一些,因为使用loc时,还要判断标签的数据类类型。比如一个数据标签是2020,这可能是文本,也可能是整数,而根据位置来进行检索,则不需要考虑这么多

官方文档

iloc[] is primarily integer position based (from 0 to length-1 of the axis), but may also be used with a boolean array.
Allowed inputs are:

  • An integer, e.g. 5.
  • A list or array of integers, e.g. [4, 3, 0].
  • A slice object with ints, e.g. 1:7.
  • A boolean array.
  • A callable function with one argument (the calling Series or DataFrame) and that returns valid output for indexing (one of the above). This is useful in method chains, when you don’t have a reference to the calling object, but would like to base your selection on some value.

.iloc will raise IndexError if a requested indexer is out-of-bounds, except slice indexers which allow out-of-bounds indexing (this conforms with python/numpy slice semantics).

实验

iloc是基于整数型位置参数来进行检索,也可以是一个布尔值数组
允许的参数有:

  • 先构建一个实例
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame(index=['小明','小红','小王'],data={'height':[178,171,185],'weight':[156,90,140]})
df
		height	weight
小明	178		156
小红	171		90
小王	185		140
  • 一个整数
df.iloc[2] #如果只有一个参数,那么默认是行

height    185
weight    140
Name: 小王, dtype: int64
  • 一个数组
df.iloc[[0,2]]

	height	weight
小明	178	156
小王	185	140
  • 一个整数的切片
df.iloc[1:2]#依旧是左闭右开

	height	weight
小红	171	90
  • 一个布尔数组
df.iloc[[True,False,True]]#数组长度要和数据集长度匹配

	height	weight
小明	178	156
小王	185	140
  • 函数
df.iloc[lambda x: x.index == '小王']

	height	weight
小王	185	140

这里是df.loc的用法

你可能感兴趣的:(pandas)