我有以下数据框。我想遍历每一行并比较分数列(如果值> = cut_off列表中存在的值)。
seq score status
7 TTGTTCTCTGTGTATTTCAGGCT 10.42 positive
56 CAGGTGAGA 9.22 positive
64 AATTCCTGTGGACTTTCAAGTAT 1.23 positive
116 AAGGTATAT 7.84 positive
145 AAGGTAATA 8.49 positive
172 TGGGTAGGT 6.86 positive
204 CAGGTAGAG 7.10 positive
214 GCGTTTCTTGAATCCAGCAGGGA 3.58 positive
269 GAGGTAATG 8.73 positive
274 CACCCATTCCTGTACCTTAGGTA 8.96 positive
325 GCCGTAAGG 5.46 positive
356 GAGGTGAGG 8.41 positive
cut_off = range(0, 11)
到目前为止,我尝试过的代码是:
cutoff_list_pos = []
number_list_pos = []
cut_off = range(0, int(new_df['score'].max())+1)
for co in cut_off:
for df in df_elements:
val = (df['score']>=co).value_counts()
cutoff_list_pos.append(co)
number_list_pos.append(val)
所需的输出是:
cutoff true false
0 0 12.0 0
1 1 12.0 0
and so on..
如果分数大于等于cut_off中的值,则应将行指定为true,否则为false。
您可以keys
在concat
的值中使用参数in cutoff_list_pos
,然后通过以下方式转置索引并将其转换为列DataFrame.reset_index
:
df = (pd.concat(number_list_pos, axis=1, keys=cutoff_list_pos, sort=False)
.T
.rename_axis('cutoff')
.reset_index())
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句