如何基于首行0值按列索引删除Pandas DataFrame中的列?
解决Pandas按列索引删除首行值为0的列的问题
直接上纯索引操作的解决方案,全程不用列名:
完整代码示例
import pandas as pd data = {'col A': [1, 1, 1], 'col B': [0, 1, 1], 'col C': [1, 1, 0], 'col D': [1, 0, 1], 'col E': [0, 1, 1]} df = pd.DataFrame(data) # 1. 按行索引取首行数据 first_row = df.iloc[0] # 2. 生成保留列的布尔掩码:首行值不为0的列标记为True keep_cols = first_row != 0 # 3. 用布尔索引筛选列,全程不涉及列名 df_filtered = df.loc[:, keep_cols] print(df_filtered)
运行结果
输出的DataFrame就是预期的仅保留首行值为1的列:
col A col C col D 0 1 1 1 1 1 1 0 2 1 0 1
关键逻辑说明
df.iloc[0]直接通过行索引获取首行的所有列值first_row != 0生成与列数对应的布尔数组,标记哪些列需要保留df.loc[:, keep_cols]通过布尔索引筛选列,完全不需要指定任何列名,严格符合要求
内容的提问来源于stack exchange,提问作者hadji
相关产品推荐
相关产品推荐

