如何提取pandas DataFrame中指定索引列表对应的列子集?
基于列索引列表筛选pandas DataFrame列的方法
你可以直接用iloc索引器实现需求,这是pandas专门用于按位置(整数索引)筛选数据的语法,操作非常简单。
具体实现步骤
- 先准备原始DataFrame和目标列索引列表,示例如下:
import pandas as pd # 示例原始DataFrame,共4列,列索引对应0、1、2、3 df = pd.DataFrame({ 'col_a': [1,2,3,4], 'col_b': [5,6,7,8], 'col_c': [9,10,11,12], 'col_d': [13,14,15,16] }) # 目标列索引列表,比如要筛选第0列和第2列 target_cols_idx = [0, 2]
- 用
iloc筛选列生成新DataFrame:
# 冒号表示保留所有行,第二个参数直接传入列索引列表即可 new_df = df.iloc[:, target_cols_idx]
注意:如果需要生成和原DataFrame完全独立、不共享内存的新对象,可以在末尾加
.copy(),即new_df = df.iloc[:, target_cols_idx].copy(),避免后续修改新DataFrame时意外改动原数据。
备选实现方法
你也可以通过列名间接筛选,先通过df.columns拿到所有列名的序列,再用索引列表取对应的列名后传入方括号索引,效果和iloc方法一致:
new_df = df[df.columns[target_cols_idx]]
内容的提问来源于stack exchange,提问作者Sebastian
相关产品推荐
相关产品推荐

