loc()和 iclo()方法区别

loc()和 iclo()方法区别方法都返回了相同的结果 因为 DataFrame 的索引标签与整数位置相对应

大家好,欢迎来到IT知识分享网。

解释

ilocloc 方法都用于按照行标签或列标签来进行索引操作,但它们有一些关键的区别。

  1. iloc 方法data.iloc[“行”:“列”]
    • iloc 是基于索引位置进行索引的,即它使用整数位置来选择数据。
    • 它接受整数、整数列表、整数切片、布尔数组等作为输入。
    • 当使用整数作为参数时,iloc 将按照整数位置来进行选择。这意味着它不考虑行或列的标签,而只考虑它们在 DataFrame 中的位置。
    • 例如,data.iloc[0] 将选择第一行,data.iloc[:, 0] 将选择第一列,data.iloc[1:3, :] 将选择第二行到第三行的数据等。
  2. loc 方法data.loc[“行”:“列”]
    • loc 是基于标签进行索引的,即它使用行标签或列标签来选择数据。
    • 它接受标签、标签列表、标签切片、布尔数组等作为输入。
    • 当使用标签作为参数时,loc 将按照标签来进行选择。这意味着它根据行或列的标签来选择数据。
    • 例如,data.loc[0] 将选择标签为 0 的行,data.loc[:, 'column_name'] 将选择名为 ‘column_name’ 的列,data.loc[1:3, :] 将选择标签为 1 到 3 的行等。

下面是一个更具体的示例,以说明 ilocloc 方法的区别:

示例一

假设我们有以下 DataFrame:

 A B C 0 1 4 7 1 2 5 8 2 3 6 9 

使用 ilocloc 方法来选择数据:

# 使用 iloc 方法选择第一行 print(df.iloc[0]) # 输出: # A 1 # B 4 # C 7 # Name: 0, dtype: int64 # 使用 loc 方法选择标签为 0 的行 print(df.loc[0]) # 输出: # A 1 # B 4 # C 7 # Name: 0, dtype: int64 # 使用 iloc 方法选择第一列 print(df.iloc[:, 0]) # 输出: # 0 1 # 1 2 # 2 3 # Name: A, dtype: int64 # 使用 loc 方法选择列标签为 'A' 的列 print(df.loc[:, 'A']) # 输出: # 0 1 # 1 2 # 2 3 # Name: A, dtype: int64 

在这个示例中,ilocloc 方法都返回了相同的结果,因为 DataFrame 的索引标签与整数位置相对应。然而,在实际情况下,当索引标签不是整数时,它们的行为可能会有所不同。

示例二

(1)使用read_csv函数读取某地区房屋销售数据.csv 文件。

import pandas as pd data = pd.read_csv('某地区房屋销售数据.csv',encoding='gbk') data 

在这里插入图片描述

(2)使用iloc()方法、1oc()方法对房屋类型为单身公寓的数据进行索引操作。

  • 下面是使用 loc 方法对房屋类型为单身公寓的数据进行索引操作的示例:
unit_data = data.loc[data['房屋类型'] == 'unit'] print(unit_data) 

这里我们使用 loc 方法,然后传入一个条件,即 data['房屋类型'] == 'unit',这将返回一个布尔 Series,表示是否满足条件。然后,我们将这个条件传递给 loc 方法,它将根据条件选择满足条件的行,并返回一个新的 DataFrame,其中包含了满足条件的所有数据。

  • 如果使用 iloc 方法,您可以通过以下方式实现:
unit_data = data.iloc[(data['房屋类型'] == 'unit').values] print(unit_data) 

在这种情况下,我们首先使用 (data['房屋类型'] == 'unit').values 来获取一个布尔数组,然后将其传递给 iloc 方法,以按照布尔数组中的索引来选择行。请注意,这种方法只适用于数据没有被重新索引的情况下。
在这里插入图片描述

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/124929.html

(0)
上一篇 2025-10-02 13:15
下一篇 2025-10-02 13:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信