目录
共同点详细用法loc函数参数类型iloc函数参数类型

共同点

两者都接收两个参数,第一个参数是行的范围,第二个参数是列的范围

不同点

loc函数接收的是行/列的名称,iloc函数接收的是行/列的下标(从0开始)loc函数在切片时是按闭区间切片的,也就是区间两边都能取到,iloc函数则是按传统的左闭右开的方式切片的

图解:


(相关资料图)

详细用法

用于展示用法的数据data如下:

loc函数参数类型

单个行名/列名 或 行名/列名的列表

print(data.loc["Chris"]) # 等价于data.loc["Chris", :]

输出:

注意上面这种写法返回的是pandas.core.series.Series对象,如果要pandas.core.frame.DataFrame对象可以改成data.loc[["Chris"]]

print(data.loc[["Alice", "David", "Ellen"], ["Physics", "Chemistry"]])

输出:

列名/行名的切片

print(data.loc["Alice": "Ellen", "Math": "English"])

输出:

布尔型列表(注意长度需要和行数/列数保持一致)

print(data.loc[[False, True, False, False, True, True], [True, False, False, True, True, True]])

输出:

可以返回布尔型列表的表达式(判断或函数)

print(data.loc[data["Chinese"] > 100, "Chinese"])

输出:

同样的,这种写法返回的是pandas.core.series.Series对象,如果要pandas.core.frame.DataFrame对象可以改成data.loc[data["Chinese"] > 100, ["Chinese"]]

print(data.loc[lambda x: x["English"] < 100])

输出:

iloc函数参数类型

单个下标 或 若干下标构成的列表

print(data.iloc[3]) # 等价于print(data.iloc[3, :])

输出:

这种写法返回的是pandas.core.series.Series对象,如果要pandas.core.frame.DataFrame对象可以改成data.iloc[[3]]

print(data.iloc[[1, 2, 4], [2, 4, 5]])

输出:

下标的切片

print(data.iloc[4: 6, 1:])

输出:

布尔型列表(注意长度需要和行数/列数保持一致)

print(data.iloc[[False, True, False, False, True, True], [True, False, False, True, True, True]])

输出:

可以返回合理值的函数

data.iloc[lambda x: x.index > "Bob"]

输出:

解释一下,这里传入lambda匿名函数的x是整个DataFrame,所以x.index就是["Alice", "Bob", "Chris", "David", "Ellen", "Frank"],大于Bob即取字典序大于Bob的那些index;这里的函数意义不大,真正有用的是当DataFrame的index是整数的时候你可以通过这种方式选取满足某种要求的index,比如只选那些index为偶数的记录:

data.iloc[lambda x: x.index % 2 == 0]

到此这篇关于pandas loc与iloc用法及区别的文章就介绍到这了,更多相关pandas loc iloc内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

推荐阅读

更多 >

最近更新

更多 >