如何在Pandas DataFrame中筛选以‘Norm’结尾的含值列?
筛选DataFrame中以'Norm'结尾的完整列
嗨,别担心,新手刚接触pandas的时候很容易卡在这一步😉 你已经成功找出了所有符合条件的列名,现在只需要用这些列名去索引你的DataFrame,就能拿到包含数值的完整列啦!
方法一:基于你现有代码的修改
你已经通过循环得到了Norms列名列表,只需要添加一行代码,用这个列表去选取DataFrame的列:
import os print(os.getcwd()) os.chdir('E:/task') import pandas as pd df1 = pd.read_table('haha.txt') Norms = [] for s in df1.columns: if s.endswith('Norm'): Norms.append(s) # 新增这一行,获取完整的列数据 df_norms = df1[Norms] # 打印结果看看 print(df_norms)
方法二:更简洁的pandas内置方法
其实pandas提供了更便捷的filter()方法,用正则表达式就能一步筛选出以'Norm'结尾的列,不用写循环:
import os print(os.getcwd()) os.chdir('E:/task') import pandas as pd df1 = pd.read_table('haha.txt') # 用正则表达式匹配结尾为'Norm'的列 df_norms = df1.filter(regex=r'Norm$') print(df_norms)
这里的r'Norm$'是正则表达式,$符号表示匹配字符串的结尾,所以只会选中列名以'Norm'结束的列。
运行之后你就能看到包含对应数值的完整列了,比如你的示例数据会输出:
TCGA_AF_2689_Norm TCGA_AF_2691_Norm 0 5 2
内容的提问来源于stack exchange,提问作者Iris
相关产品推荐
相关产品推荐

