阅读 74

pandas筛选数据

步骤:

做出图来发现应该先筛选。

1

Annovar注释的,优点是一个位点一个记录,不用去重等,文档清晰,照着做就能运行出结果。

1

筛选数据:

原始数据每个SRR需要三列,但是做值筛选却不方便对左右进行处理,一个好的办法是将其先拆分为三个表,再对需要筛选的值做成01表,使用相乘的dataframe广播方式解决问题。


1

突然知道这种情况的原因了:


1

结尾有个tab因此有了Unnamed这一列,chr不是索引的名字因此往后顶了一列,如下:

圆圈处是空的因此往后顶了

1

删除chr和每行最后的tab就好了


1

判断值,并生成布尔指标值,只做了第一列:

参考:http://www.cocoachina.com/cms/wap.php?action=article&id=53695

1

配合按列遍历,可以得到布尔转01的表,条件是>10:


1

相除出现问题,改成相加查看问题,想到是赋值的问题,python的赋值还是共用一个内存地址,因此


1

因此df-1 df_1_1是一样的。

1

直接通过重新从文件读dataframe解决


1

相除并筛选


1

获得了SRR布尔表,正确:


1

mapping

reads

df_1:editing

df_2:mapping

df_3:e/m

筛选用的布尔矩阵:

先对df_2筛>10的

再对df_3筛>0.05的

相乘的到筛选矩阵

筛选矩阵*df_1  

筛选矩阵*df_2

得到筛选后的合格数据


1

总体思路:拆成3个表,做出布尔表,相乘达到筛选的目的,最后再参考https://zhuanlan.zhihu.com/p/136105318清除全是0的行


结果:


1

确实筛掉了全0行

筛选部分结束。



作者:byejya
链接:https://www.jianshu.com/p/8978e329780b

文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐