Python_AI库 Pandas的loc和iloc的区别与使用实例

Python中Pandas的lociloc的区别与使用实例

在这里插入图片描述

在Pandas中,lociloc是两个常用的方法,用于基于标签(label)和整数位置(integer location)来选择数据。尽管两者在功能上有重叠,但它们在用法和性能上有所不同。下面将详细解释它们之间的区别,并通过实例来演示它们的使用。

loc vs iloc

  • loc:基于标签进行选择。它使用行标签和列标签来选择数据。对于DataFrame,这些标签通常是列名和行索引。
  • iloc:基于整数位置进行选择。它使用基于0的索引来选择数据,忽略行标签和列标签的实际值。

使用实例

假设我们有一个如下的DataFrame:

import pandas as pd

data = {
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
    'C': [9, 10, 11, 12],
    'D': [13, 14, 15, 16]
}

df = pd.DataFrame(data, index=['row1', 'row2', 'row3', 'row4'])
print(df)

输出:

      A  B   C   D
row1  1  5   9  13
row2  2  6  10  14
row3  3  7  11  15
row4  4  8  12  16
使用loc
  1. 选择索引为’row2’的行:
print(df.loc['row2'])

输出:

A     2
B     6
C    10
D    14
Name: row2, dtype: int64
  1. 选择列’A’和’C’:
print(df.loc[:, ['A', 'C']])

输出:

      A   C
row1  1   9
row2  2  10
row3  3  11
row4  4  12
使用iloc
  1. 选择第二行(基于0的索引):
print(df.iloc[1])

输出:

A     2
B     6
C    10
D    14
Name: row2, dtype: int64

注意,尽管这里我们选择了索引为1的行,但输出的行标签仍然是’row2’,因为iloc是基于整数位置选择的,而不是基于标签。

  1. 选择前两列:
print(df.iloc[:, :2])

输出:

      A  B
row1  1  5
row2  2  6
row3  3  7
row4  4  8

注意事项

  • 当DataFrame的索引是整数时,使用loc可能会产生混淆,因为此时标签和位置可能会重叠。在这种情况下,使用iloc会更清晰。
  • loc通常比iloc更快,因为loc使用标签进行选择,这通常是一个哈希操作,而iloc可能需要额外的步骤来将整数位置映射到实际的标签。
  • 在某些情况下,使用lociloc的组合可以实现更复杂的选择逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值