IT源码网

python之从多列中过滤和替换

Free-Thinker 2024年02月27日 程序员 64 0

我有一个文件,我必须将大于 0.05 ( pval > 0.05 ) 的 pvalue 替换为 NA ,换句话说保留pval < 0.05并替换 p val > 0.05NA

例如:

Rv_FC    Rv_Pval  Gc_FC  Gc_Pval ...... 
2          0.001   3      0.99 
3          0.99    1      0.0002 
3          0.0001  2      0.89 

输出:

Rv_FC    Rv_Pval  Gc_FC  Gc_Pval ...... 
2          0.001   3      NA  
3          NA      1      0.0002 
3          0.0001  2      NA 

仅应考虑 pval 列,如果它们的值 > 0.05 ,则应将其替换为 NA .

优点:pval 列位于第 3、5、7 ... 列..

请您参考如下方法:

这个应该可以工作:

awk 'BEGIN{ OFS = "\t" }NR==1{ for ( i = 1; i <= NF; i++) if ( $i ~"Pval" ) a[i]; print $0}NR>1{for ( i in a ) if ( $i > 0.5 ) $i = "NA"; print $0 }' file 

输出:

Rv_FC    Rv_Pval  Gc_FC  Gc_Pval   
2        0.001     3      NA 
3        NA        1      0.0002 
3        0.0001    2      NA 


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!