python中dataframe的iloc和loc的使用区别

.iloc.loc 的基本用法

.iloc
  • 用于通过位置(整数位置)来选择数据。
  • iloc 索引基于行和列的整数位置

常用语法

  • data.iloc[i, j]:选择第 i 行第 j 列的元素,若索引下标从0开始,对应的是第 i+1 行第 j+1 列的元素。
  • data.iloc[i, :]:选择第 i 行的所有列,若索引下标从0开始,对应的是第 i+1 行所有列的元素。
  • data.iloc[:, j]:选择所有行的第 j 列,若索引下标从0开始,对应的是所有行第 j+1 列的元素。
  • data.iloc[i:j, k:l]:==选择从第 i 行到第 j 行(不包括第 j 行)和从第 k 列到第 l 列(不包括第 l 列)的数据。左闭右开区间的选择,若索引下标从0开始,对应的是第 i+1 行到第 j+1 行(不包括第 j+1 行)和从第 k+1 列到第 l+1 列(不包括第 l+1 列)的数据
.loc
  • 用于通过标签(行和列的标签名)来选择数据。
  • loc 索引基于行和列的标签

常用语法

  • data.loc[row_label, col_label]:选择指定行标签和列标签的数据。
  • data.loc[row_label, :]:选择指定行标签的所有列。
  • data.loc[:, col_label]:选择所有行的指定列标签。
  • data.loc[row_labels, col_labels]:选择多个行标签和列标签的数据。

示例代码和解释

首先,创建一个示例 DataFrame:index表示的是行索引,columns是列索引

import pandas as pd

# 创建一个示例 DataFrame
data = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}, index=['row1', 'row2', 'row3'])

print(data)

输出

       A  B  C
row1  1  4  7
row2  2  5  8
row3  3  6  9
使用 .iloc
  1. 选择特定元素索引下标都是从0开始

    element = data.iloc[1, 2]
    print(element)
    

    输出

    8
    

    选择第二行第三列的元素(位置索引是从0开始的)。

  2. 选择特定行

    row_data = data.iloc[1, :]
    print(row_data)
    

    输出

    A    2
    B    5
    C    8
    Name: row2, dtype: int64
    

    选择第二行的所有列数据。也就是第二行的所有数据

  3. 选择特定列

    col_data = data.iloc[:, 1]
    print(col_data)
    

    输出

    row1    4
    row2    5
    row3    6
    Name: B, dtype: int64
    

    选择所有行的第二列数据。

  4. 选择行和列的范围

    subset = data.iloc[0:2, 1:3]
    print(subset)
    

    输出

          B  C
    row1  4  7
    row2  5  8
    

    选择第一行到第二行(不包括第三行)和第二列到第三列(不包括第四列)的数据。

使用 .loc
  1. 选择特定元素

    element = data.loc['row2', 'C']
    print(element)
    

    输出

    8
    

    选择行标签为 row2 和列标签为 C 的元素。

  2. 选择特定行

    row_data = data.loc['row2', :]
    print(row_data)
    

    输出

    A    2
    B    5
    C    8
    Name: row2, dtype: int64
    

    选择行标签为 row2 的所有列数据。

  3. 选择特定列

    col_data = data.loc[:, 'B']
    print(col_data)
    

    输出

    row1    4
    row2    5
    row3    6
    Name: B, dtype: int64
    

    选择所有行的列标签为 B 的数据。

  4. 选择行和列的范围

    subset = data.loc['row1':'row2', 'B':'C']
    print(subset)
    

    输出

          B  C
    row1  4  7
    row2  5  8
    

    选择从 row1row2 行(包括row2)和从 B 列到 C 列的数据(包括 C)。

总结

  • .iloc 使用整数位置索引来选择数据,适合基于位置的操作。
  • .loc 使用标签来选择数据,适合基于标签的操作。
### 回答1: pandasDataFrame对象有两个方法lociloc,用于选择数据。 loc方法使用标签来选择数据,iloc方法使用整数位置来选择数据。 例如,df.loc[2,'column']表示选择第2行和'column'列的数据,而df.iloc[2,3]表示选择第3行和第4列的数据。 这两个方法都可以使用切片来选择多行或多列的数据。例如,df.loc[2:5,'column1':'column3']表示选择第2到第5行和'column1'到'column3'列的数据。 ### 回答2: PythonDataFrame是Pandas库的一个重要数据结构,用于处理和分析具有不同类型的数据。 DataFramelociloc都用于从DataFrame选择特定行和列。 loc是基于行和列的标签进行选择。使用loc,我们可以传入行和列的标签,以选择特定的数据。 例如,假设我们有一个DataFrame df,其包含三列 A、B、C 和五行数据。我们可以使用以下语法选择数据: ``` df.loc[行标签, 列标签] ``` 其,行标签和列标签可以是具体的数值、列表、切片或布尔索引。 iloc是基于行和列的索引进行选择。使用iloc,我们可以传入行和列的索引位置,以选择特定的数据。 例如,假设我们有一个DataFrame df,其包含三列 A、B、C 和五行数据。我们可以使用以下语法选择数据: ``` df.iloc[行索引, 列索引] ``` 其,行索引和列索引可以是具体的数值、列表、切片或布尔索引。 需要注意的是,行和列的索引从0开始计数。 总结起来,lociloc都是用于从DataFrame选择特定行和列的方法。loc是基于标签进行选择,而iloc是基于索引进行选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值