Selecting multiple columns in a Pandas dataframe
Selecting multiple columns in a Pandas dataframe
技术背景
在数据处理和分析中,经常需要从 Pandas 的 DataFrame 中选择多个列进行操作。Pandas 提供了多种方法来实现这一需求,每种方法都有其适用场景。
实现步骤
1. 通过列名列表选择
可以将列名作为列表传递给 __getitem__
语法(即 []
)来选择特定的列。
1 |
|
2. 通过列索引选择
使用 iloc
方法,根据列的位置索引来选择列。
1 |
|
3. 使用 .loc
方法
从版本 0.11.0 开始,可以使用 .loc
索引器按列名进行切片选择。
1 |
|
4. 使用布尔数组选择
.loc
方法也接受布尔数组,可用于选择布尔数组中对应值为 True
的列。
1 |
|
5. 使用 filter
方法
filter
方法可用于筛选或重新排序列。
1 |
|
6. 使用 drop
方法
通过指定要删除的列列表,返回仅包含所需列的 DataFrame。
1 |
|
7. 使用 reindex
方法
从版本 0.21.0 开始,推荐使用 reindex
方法来选择列,避免使用 .loc
或 []
时出现的弃用警告。
1 |
|
核心代码
以下是一个完整的示例,展示了如何使用不同方法选择列:
1 |
|
最佳实践
- 在实际应用中,最常用的方法是
[cols]
或__getitem__(cols)
方法,例如df[['A', 'B']]
。 - 如果担心
SettingWithCopyWarning
警告,可以在导入 Pandas 后立即开启写时复制模式。
1 |
|
常见问题
1. SettingWithCopyWarning
警告
在某些情况下,对切片对象的修改可能会影响原始对象。可以使用 .copy()
方法创建一个副本,或者开启写时复制模式来避免此问题。
2. 'index'
作为列名的问题
'index'
是一个不建议用于 DataFrame 列名的名称,因为它与 df.index
属性冲突。
3. 弃用警告
从版本 0.21.0 开始,使用 .loc
或 []
并传入包含一个或多个缺失标签的列表会产生弃用警告,推荐使用 reindex
方法。
Selecting multiple columns in a Pandas dataframe
https://119291.xyz/posts/selecting-multiple-columns-in-a-pandas-dataframe/