【python】Pandas 中的.loc和.iloc介绍

在 Pandas 中,标签(labels)是指用来标识 DataFrame 或 Series 中行和列的唯一标识符。在 Pandas 的数据结构中,标签可以是任意哈希类型的对象,最常见的就是字符串和整数,但也可以是日期时间、元组等。标签在 DataFrame 中构成了行索引和列索引。

行索引和列索引

  • 行索引:DataFrame 的行通常由一个索引(index)来标识,这个索引可以是默认的整数索引(从0开始递增),也可以是用户自定义的标签索引。例如,如果你在创建 DataFrame 时指定了 index 参数,那么行就会按照你提供的标签来排序和索引。

  • 列索引:DataFrame 的列由列名(column names)构成,这些列名也是标签,通常在创建 DataFrame 时定义,作为字典的键或列表中的元素。

示例

让我们通过一个具体的例子来理解标签的概念:

import pandas as pd

# 使用字典和自定义索引来创建一个 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'Gender': ['Female', 'Male', 'Male']}
df = pd.DataFrame(data, index=['person1', 'person2', 'person3'])

# 显示 DataFrame
print(df)

输出的 DataFrame 如下:

        Name  Age      Gender
person1  Alice  25    Female
person2    Bob  30      Male
person3 Charlie  35      Male

在这个例子中:

  • person1, person2, person3 是行的标签,即行索引。
  • Name, Age, Gender 是列的标签,即列索引。

使用 .loc 基于标签选取数据

由于 DataFrame 的行和列都有标签,你可以使用 .loc 函数通过这些标签来选取数据:

# 选取单个单元格
print(df.loc['person1', 'Age'])  # 输出:25

# 选取整行
print(df.loc['person1'])

# 选取整列
print(df.loc[:, 'Name'])

# 选取多行多列
print(df.loc[['person1', 'person3'], ['Name', 'Age']])

使用 .iloc 基于位置选取数据

.iloc 方法是基于位置的选取,这意味着它使用行和列的数字位置来选择数据。位置编号从0开始:

# 选取单个单元格
print(df.iloc[0, 1])  # 输出:25

# 选取整行
print(df.iloc[0])

# 选取整列
print(df.iloc[:, 0])

# 选取多行多列
print(df.iloc[[0, 2], [0, 1]])

使用布尔索引进行条件筛选

布尔索引允许你基于条件来选取数据,通常涉及到比较运算符:

# 筛选年龄大于30的人
print(df[df['Age'] > 30])

# 筛选女性
print(df[df['Gender'] == 'Female'])

# 多条件筛选
print(df[(df['Age'] > 30) & (df['Gender'] == 'Male')])
  • 15
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值