Pandas Dataframe 的 loc与iloc 区别与示例

在 Pandas 中,DataFrame 有两种主要的索引方式:隐式整数索引和行、列标签索引。

隐式整数索引: 使用 iloc 方法,默认情况下,Pandas 会为 DataFrame 分配从 0 开始的整数索引。这是 DataFrame 的默认索引方式,类似于 Python 中的列表索引

行、列标签索引: 使用 loc 方法,可以通过行和列的标签进行索引。行标签默认是整数索引,也可以设置成其他字符,列标签是 DataFrame 的列名。

# 隐式整数索引可以是任何整数,不受标签类型的限制。例如,可以使用负数索引,而标签索引不支持负数。
 print(df.iloc[-1])  # 可以使用负数索引,选择最后一行的元素
# print(df.loc[-1])  # 引发错误,因为标签索引不支持负数

lociloc 索引元素方法

  1. loc 根据标签进行索引和选择数据。

    • 通过标签索引单个元素:

      # 选择行标签为0,列标签为ColumnName的元素
      df.loc[0, 'ColumnName']
      
    • 通过标签索引整行或整列:

      # 选择所有行,列标签为ColumnName的元素
      df.loc[:, 'ColumnName']
      
    • 通过标签索引多行多列:

      选择前五行,列标签为ColumnName1与ColumnName2的所有元素
      df.loc[0:5, ['ColumnName1', 'ColumnName2']]
      
  2. iloc 根据整数位置(从0开始)进行索引和选择数据。

    • 通过整数索引单个元素:

      # 选择第一行第二列数据
      df.iloc[0, 1]
      
    • 通过整数索引整行或整列:

      # 选择所有行第一列数据
      df.iloc[:, 1]
      
    • 通过整数索引多行多列:

      # 选择前五行,第一列、第三列数据
      df.iloc[0:5, [0, 2]]
      

区别在于 loc 使用的是标签,而 iloc 使用的是整数位置。以下是更详细的示例:

import pandas as pd

# 创建一个DataFrame
data = {'A': [1, 2, 3, 4, 5],
        'B': ['a', 'b', 'c', 'd', 'e']}
df = pd.DataFrame(data, index=['one', 'two', 'three', 'four', 'five'])

#[]中的数字是隐式整数索引,不会被打印在控制台
"""
>>> df
		 [0][1]
       	  A  B
[0]one    1  a
[1]two    2  b
[2]three  3  c
[3]four   4  d
[4]five   5  e
"""


# 使用 loc 行列标签定位
print("Using loc:")
# 选择行标签为one,列标签为A的元素
print(df.loc['one', 'A'])          # 1
# 选择所有行,列标签为B的元素
print(df.loc[:, 'B'])              # one    a
                                   # two    b
                                   # three  c
                                   # four   d
                                   # five   e
# 选择行标签为one、three,列标签为A、B的元素                                   
print(df.loc[['one', 'three'], ['A', 'B']])
                                   #        A  B
                                   # one    1  a
                                   # three  3  c

# 使用 iloc 隐式整数索引
print("\nUsing iloc:")
# 选择第一行第一列的元素
print(df.iloc[0, 0])               # 1
# 选择所有行,第二列元素
print(df.iloc[:, 1])               # one      a
                                   # two      b
                                   # three    c
                                   # four     d
                                   # five     e
# 选择第一行第三行,第一列,第二列元素                               
print(df.iloc[[0, 2], [0, 1]])
                                   #        A  B
                                   # one    1  a
                                   # three  3  c
  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: pandas中的DataFrame对象有两个方法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: Python中的DataFramePandas库的一个重要数据结构,用于处理和分析具有不同类型的数据。 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、付费专栏及课程。

余额充值