Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按行筛选值,如果高于阈值,则返回列标题_Python - Fatal编程技术网

Python 按行筛选值,如果高于阈值,则返回列标题

Python 按行筛选值,如果高于阈值,则返回列标题,python,Python,这就是我目前所拥有的,但我被卡住了。我能够过滤我想要的值,但我不知道如何获取这些过滤后的值,而不是将它们放在一个返回列标题的列表中 以下是我的数据: Taxa,Pop_1,Pop_2,Pop_3,Pop_4,Pop_5,Pop_6,Pop_7 IPs216:C95NTANXX:1:250590968,0.000023,0.999865,0.000023,0.000023,0.000023,0.000023,0.000022 IPs159:C95NTANXX:1:250591032,0.00002

这就是我目前所拥有的,但我被卡住了。我能够过滤我想要的值,但我不知道如何获取这些过滤后的值,而不是将它们放在一个返回列标题的列表中

以下是我的数据:

Taxa,Pop_1,Pop_2,Pop_3,Pop_4,Pop_5,Pop_6,Pop_7
IPs216:C95NTANXX:1:250590968,0.000023,0.999865,0.000023,0.000023,0.000023,0.000023,0.000022
IPs159:C95NTANXX:1:250591032,0.000023,0.000023,0.000023,0.000023,0.000023,0.999864,0.000023
IPs286:C95NTANXX:1:250591013,0.000024,0.000024,0.000024,0.000024,0.000024,0.000024,0.999856
IPs63:C95NTANXX:1:250591090,0.000024,0.000024,0.409426,0.352769,0.000024,0.237707,0.000024
IPs892:C95NTANXX:1:250591054,0.000024,0.000024,0.999853,0.000024,0.000024,0.000024,0.000024
IPs264:C95NTANXX:1:250590956,0.000023,0.000023,0.000023,0.999864,0.000023,0.000023,0.000023
IPs716:C95NTANXX:1:250590960,0.000023,0.000023,0.999864,0.000023,0.000023,0.000023,0.000023
IPs854:C95NTANXX:1:250590951,0.000022,0.080564,0.919325,0.000022,0.000022,0.000022,0.000022
IPs914:C95NTANXX:1:250591052,0.238472,0.000023,0.000023,0.686966,0.000023,0.074471,0.000023
IPs729:C95NTANXX:1:250591019,0.000022,0.000022,0.000022,0.999869,0.000022,0.000022,0.000022        
这是我的代码:

f=open("/home/mjohnson/Desktop/Millet_Files/final_analysis/trees/pop_info/kodo_mod_7.meanQ" , "r")
col_titles=list()
pop_values=list()
f.readline()
filtered=list()
#gives a list with column names, i need to index this to pair values with them
a=open("/home/mjohnson/Desktop/Millet_Files/final_analysis/trees/pop_info/kodo_mod_7.meanQ" , "r")
col_titles.append(a.readline())
col_names=list()
for names in col_titles:
    q=names.strip('\n').split(',')
    col_names.append(q)
#end of getting column names

for line in f:
    x=line.strip('\n').split(',')
    x=x[1:] #this has the list ignore the first values, so taxa names ignored 
    for score in x:
        if float(score) > 0.5:
            filtered.append(score+'\n')

为什么你要自己解析CSV文件?请参阅标准模块。特别是你想要的是课堂

例:

2件事:

1) 你不必扔掉第一列,你可以通过调整循环跳过它

2) 使用enumerate对您正在循环的内容进行编号,而这些内容还不适合您

for i, score in enumerate(x[1:]):
    if float(score) > 0.5:
        filtered.append(col_names[i]+'\n')

读取文件所做的一切都是
readline()
,即一次读取一行,但不遍历文件。
for i, score in enumerate(x[1:]):
    if float(score) > 0.5:
        filtered.append(col_names[i]+'\n')