python:loc与iloc介绍

        在Python的Pandas库中,lociloc都是用于索引DataFrame数据的重要工具。它们之间的主要区别在于索引方式loc是基于标签的索引,而iloc是基于整数位置的索引

loc

介绍:

  • loc是基于行标签(index)和列标签(columns)进行选择的。

  • 语法:dataframe.loc[行标签, 列标签]/loc[index切片或列表,columns切片或列表]

  • 可以同时选择多行和多列

示例如下:

import pandas as pd  
  
# 创建一个DataFrame  
data = {'Name': ['Tom', 'Nick', 'John', 'Tom'],  
        'Age': [20, 21, 19, 18],  
        'Height': [180, 175, 179, 169]}  
df = pd.DataFrame(data)  
  
# 使用loc选择行和列  
print(df.loc[1:3, ['Name', 'Age']])  # 选择第2行到第4行(基于0的索引),以及'Name'和'Age'列

使用方法:

  • 访问某一行:.loc[index的值]
  • 访问连续的某几行:.loc[起始index的值:结束index的值](切片表示法,包含结束值)
  • 访问不连续的某几行:.loc[[第一个index,第二个index,第三个index......]](列表表示法)
  • 访问单个元素:.loc[index的值,columns的值]
  • 访问多个元素:.loc[index切片或列表,columns切片或列表]

输出为:

   Name  Age
1  Nick   21
2  John   19
3   Tom   18

iloc

介绍:

  • iloc是基于行号和列号进行选择的,与NumPy数组的索引方式非常相似。

  • 语法:dataframe.iloc[行号, 列号]/iloc[index切片或列表,columns切片或列表]

  • 行号和列号都是从0开始的整数。

示例如下:

import pandas as pd  
  
# 创建一个DataFrame(同上例)  
data = {'Name': ['Tom', 'Nick', 'John', 'Tom'],  
        'Age': [20, 21, 19, 18],  
        'Height': [180, 175, 179, 169]}  
df = pd.DataFrame(data)  
  
# 使用iloc选择行和列  
print(df.iloc[1:3, [0, 1]])  # 选择第2行到第3行(不包括第4行),以及第1列和第2列(基于0的索引)

输出为:

   Name  Age
1  Nick   21
2  John   19

使用方法:

  • 访问某一行:.iloc[index的位置]
  • 访问连续的某几行:.iloc[起始index的位置:结束index的位置](切片表示法,不包含结束值)
  • 访问不连续的某几行:.iloc[[第一个index,第二个index,第三个index......]](列表表示法)
  • 访问单个元素:.iloc[index的位置,columns的位置]
  • 访问多个元素:.iloc[index切片或列表,columns切片或列表]

注意事项

  • 当使用loc进行切片时,结束索引是包含的,要特别注意,如上述第一个例子。
  • 当使用iloc进行切片时,结束索引是不包含的,这与Python的列表切片行为是一致的。
  • 在选择数据时,要确保所使用的索引方式(标签或位置)与DataFrame的实际结构相匹配,否则可能会引发错误。
  • 如果只传入一个索引(无论是行还是列),则必须确保该索引在DataFrame的对应维度中存在,否则会引发KeyErrorIndexError
  • 中括号里的中括号代表列表。
  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值