📜  iloc 和 loc 有什么区别 - Python (1)

📅  最后修改于: 2023-12-03 15:01:22.936000             🧑  作者: Mango

iloc 和 loc 有什么区别 - Python

在 Pandas 库中,有两种常用的方式对 DataFrame 进行数据的检索和定位,它们分别是 iloc 和 loc。虽然它们的功能相似,但在使用时需要注意它们的区别。

iloc

iloc 表示通过 DataFrame 的行号和列号进行数据的检索和定位。它的语法格式为:

df.iloc[行号, 列号]

其中,行号和列号都可以是单个整数、整数列表或者整数切片对象。例如:

df.iloc[0, 0]        # 检索第一个元素
df.iloc[4, :]        # 检索第五行的所有元素
df.iloc[:, 2]        # 检索第三列的所有元素
df.iloc[2:5, 1:3]    # 检索第三至五行和第二至三列的所有元素

上述代码中,df 表示 DataFrame 对象。需要注意的是,iloc 中的行号和列号都是基于 0 开始计数的整数,即第一个元素的行号和列号都是 0。

loc

loc 表示通过 DataFrame 的标签进行数据的检索和定位。它的语法格式为:

df.loc[行标签, 列标签]

其中,行标签和列标签都可以是单个标签、标签列表或者标签切片对象。例如:

df.loc[0, '列1']              # 检索第一行第一列的元素
df.loc[4, :]                  # 检索第五行的所有元素
df.loc[:, '列3']              # 检索第三列的所有元素
df.loc[2:5, ['列2', '列4']]   # 检索第三至五行和第二和第四列的所有元素

需要注意的是,loc 中的行标签和列标签可以是自定义的标签,而不必是基于 0 开始计数的整数。

总结

iloc 和 loc 在 Pandas 中都有它们的作用,但在使用时需要注意它们的区别。如果要通过行号和列号进行数据的检索和定位,就应该使用 iloc;如果要通过行标签和列标签进行数据的检索和定位,就应该使用 loc。