Python中如何筛选DataFrame首下划线后数字大于20的列
筛选首下划线后数字大于20的DataFrame列列表
假设你的DataFrame列名格式为c_xx_xx_器官名,要筛选首下划线后数字大于20的列,可通过以下方法实现:
前提说明
示例列名需为字符串类型,修正后的列名列表如下:
column_names = ["c_12_2_heart", "c_29_4_lung", "c_21_21_stomach", "c_2_25_bladder", "c_40_1_kidney"]
方法1:列表推导式
直接遍历列名,分割后提取目标数字进行判断:
# 假设你的DataFrame名为df filtered_columns = [col for col in df.columns if int(col.split('_')[1]) > 20]
方法2:filter函数+lambda表达式
用函数式编程的方式完成筛选:
filtered_columns = list(filter(lambda col: int(col.split('_')[1]) > 20, df.columns))
逻辑说明
col.split('_')将列名按下划线拆分为列表,例如"c_29_4_lung"会被拆分为["c", "29", "4", "lung"]- 取拆分后列表的第2个元素(索引为1),转换为整数后判断是否大于20
- 得到
filtered_columns后,可直接用于提取DataFrame的子集:df_filtered = df[filtered_columns]
内容的提问来源于stack exchange,提问作者Niam45
相关产品推荐
相关产品推荐

