‘loc‘ 和 ‘iloc‘的区别和用法

loc (基于标签的索引)

特点
  1. 标签索引loc 使用行索引和列标签来访问数据。可以通过行的标签(例如字符串、日期、或自定义的索引)以及列的名称来选择数据。
  2. 包含结束点:在使用切片操作符(:)时,loc 包括切片的结束点。例如,df.loc[1:3] 将返回索引为 1、2、3 的行,而不仅仅是 1 和 2。
  3. 支持布尔索引:可以通过布尔条件直接筛选出满足条件的数据。
语法与例子
import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'City': ['New York', 'Los Angeles', 'Chicago']}
df = pd.DataFrame(data)

# 通过标签选择单个元素
print(df.loc[0, 'Name'])  # 输出 'Alice'

# 通过标签选择整列
print(df.loc[:, 'Age'])  # 输出整个 'Age' 列

# 通过标签选择多列
print(df.loc[:, ['Name', 'City']])  # 输出 'Name' 和 'City' 两列

# 通过标签选择多行
print(df.loc[1:2, :])  # 输出索引为 1 和 2 的行(包括结束点)

# 布尔索引
print(df.loc[df['Age'] > 25, 'Name'])  # 输出 'Bob' 和 'Charlie'

iloc (基于整数位置的索引)

特点
  1. 整数位置索引iloc 使用行索引和列索引的整数位置来访问数据。行和列的索引是从 0 开始的整数。
  2. 不包含结束点:在使用切片操作符(:)时,iloc 不包括切片的结束点。例如,df.iloc[1:3] 只返回索引为 1 和 2 的行,而不包括 3。
  3. 支持混合切片:你可以通过整数位置选择特定的行或列范围。
语法与例子
import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'City': ['New York', 'Los Angeles', 'Chicago']}
df = pd.DataFrame(data)

# 通过整数位置选择单个元素
print(df.iloc[0, 0])  # 输出 'Alice'

# 通过整数位置选择整列
print(df.iloc[:, 1])  # 输出整个 'Age' 列

# 通过整数位置选择多列
print(df.iloc[:, [0, 2]])  # 输出 'Name' 和 'City' 两列

# 通过整数位置选择多行
print(df.iloc[1:3, :])  # 输出索引为 1 和 2 的行(不包括结束点)

总结

  • loc:基于标签的索引,用于按行和列的标签(如字符串、日期等)选择数据。切片时包含结束点。这种方式适合通过标签名称来选择特定的行和列,尤其当你知道数据的确切标签时。

  • iloc:基于整数位置的索引,用于按行和列的整数位置选择数据。切片时不包含结束点。iloc 适合用于按顺序选择数据,尤其在需要通过位置索引(而不是标签)来定位数据时。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI小白日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值