DF示例(400k行):
NameID Name SNP Sequence Chromosome positionOnChorm
AR1 AR1A A/G AVDJFJDSKFJVN 1 231231
AR2 AR1B A/G AVDJFJDSKFJVN 1 231231
BAR BA1B A/T FFSJJSAJASDND 2 312333
BAR2 BA1B A/T FFSJAAAAACDDD 2 312333
AR3 AR1C A/G AVDJFJDSKFJVN 1 231231
CAR7 CAR1V T/G WEEEEEEEEEEEE 4 778787
...
在DF中是基因。我需要根据这种情况将其分为两个结果数据帧: (对我来说,最重要的是名称,但对于数据也是如此。)
I。检查染色体和positionOnChorm。如果它是重复的(在AR示例中将是3个重复的基因),我需要确认检查SEQUENCE。如果相同,我可以删除重复的,保留第一个基因并将其放入finalDF
。
如果染色体和位置相同但序列不同-我需要将它们全部放入DuplDF
。
如果只是染色体/位置的一个相同组合:应将其移至finalDF
。
因此,基于示例:
finalDF
应该是:
NameID Name SNP Sequence Chromosome positionOnChorm
AR1 AR1A A/G AVDJFJDSKFJVN 1 231231
CAR7 CAR1V T/G WEEEEEEEEEEEE 4 778787
DuplDF
应该是:
BAR BA1B A/T FFSJJSAJASDND 2 312333
BAR2 BA1B A/T FFSJAAAAACDDD 2 312333
所以我有了这个主意:
我通过value_counts
创建了一个职位列表,并尝试通过if语句对其进行过滤。但是在清单中,我没有染色体。那是另一个染色体上重要的coz基因,可以位于同一位置,也可以是不同的基因。
第二个问题-是时候采取解决方案了。即使我会同时使用染色体和位置正确地建立一个陈述-处理一个DF也会花费数小时。
我曾经尝试过以不同的方式进行合并,但老实说,我不知道如何创建适合自己的情况。
我从理论上考虑将我的基因聚集在一起,然后在tempDF
中对其进行处理,但是我不知道这是否有可能简单地实现。我发现group_by
,但在文档中我读到它仅适用于一个col?
有人可以给我建议如何有效解决我的问题吗?