df.loc用法

本文介绍了 Pandas 库中 df.loc 方法的基本用法及示例。df.loc 方法用于基于标签进行数据选择,可通过行标签和列标签选取指定的数据。文章通过具体的代码示例展示了如何使用该方法对 DataFrame 的数据进行筛选和修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

df.loc[行标签,列标签]

df.loc['a':'b']#选取ab两行数据

df.loc[:,'one']#选取one列的数据

示例代码

df.loc[ (df.Cabin.notnull()), 'Cabin' ] = "Yes"

上一行代码的意思是:选取Cabin列中不为空的位置替换为“Yes”

### `df.loc`、`df.iloc` 和 `df.ix` 的区别与使用方法 在 Pandas 中,`df.loc`、`df.iloc` 和 `df.ix` 是用于数据选取的三种主要方法,它们在索引方式、使用场景和行为上存在显著差异。 #### `df.loc` `df.loc` 是基于**标签索引**(label-based indexing)的访问器,用于通过行和列的标签来选取数据。使用时必须传入行标签和列标签作为索引参数,支持单个标签、标签切片和布尔索引。例如: ```python df.loc['row_label', 'column_label'] ``` 此方法在进行区域选取时,如果只能使用标签索引,则是首选方式[^3]。需要注意的是,`loc` 的切片操作是**包含终点**的,这与 Python 原生切片不同。 #### `df.iloc` `df.iloc` 是基于**位置索引**(position-based indexing)的访问器,用于通过行和列的整数位置来选取数据。使用时传入的是整数索引,例如: ```python df.iloc[0, 1] ``` 它适用于只能使用整数索引的情况,并且在区域选取时也支持切片操作。`iloc` 的切片行为与 Python 原生切片一致,**不包含终点**,因此在某些情况下需要调整索引范围以确保包含所需数据[^4]。 #### `df.ix` `df.ix` 曾是 Pandas 中一种混合索引方式,支持同时使用标签索引和位置索引。例如,可以使用 `df.ix[0, 'column_label']` 来选取数据。然而,由于这种混合索引方式可能引发混淆和潜在错误(尤其是在索引为整数的情况下),Pandas 开发团队最终决定弃用 `ix` 方法[^2]。 尽管 `ix` 在某些早期版本中仍然可用,但不建议使用,因为 `loc` 和 `iloc` 更加明确和安全,避免了标签与位置索引的混淆问题[^1]。 #### 使用方法对比 在进行区域选取时,`df.loc` 和 `df.iloc` 都需要传入两个参数,分别用于指定行和列的筛选条件,参数之间用逗号分隔。例如: ```python df.loc['row_start':'row_end', 'column_start':'column_end'] df.iloc[0:2, 1:3] ``` 相比之下,`df.ix` 也可以实现类似功能,但由于其已被弃用,因此不推荐继续使用[^3]。 #### 总结 - `df.loc`:基于标签索引,适用于标签明确的场景。 - `df.iloc`:基于位置索引,适用于整数索引的场景。 - `df.ix`:曾支持混合索引,但已被弃用,建议使用 `df.loc` 或 `df.iloc` 替代。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值