J'essaie de classer les emplacements génomiques, et j'ai un DataFrame comme le suivant, avec tous les emplacements et leurs types de classification respectifs. Le site Type
n'a pas de classifications uniques, mais chaque rangée aura une combinaison unique de Chr
, Low
, High
.
pd.DataFrame({
'Chr':[1,1,3],
'Low':[100,200,300],
'High':[150,250,350],
'Type':['Foo','Bar','Foo']
})
J'ai ensuite mon jeu d'échantillons qui doit être classé comme le DataFrame ci-dessous.
pd.DataFrame({
'Chr':[1,1,5],
'Loc':[125,325,325]
})
Pour classer les données, pour chaque emplacement dans l'ensemble d'échantillons, la position du chromosome trouvée dans l'ensemble d'échantillons est utilisée. Chr
doit correspondre à une colonne Chr
trouvée dans le DataFrame de référence et la valeur Loc
doit être >=
el Low
valeur et <=
el High
valeur. Si c'est le cas, cette ligne doit alors être étiquetée avec la valeur respective de Type
dans le DataFrame de référence. Dans l'exemple que je fournis, l'ensemble d'échantillons devrait être étiqueté comme suit.
pd.DataFrame({
'Chr':[1,1,5],
'Loc':[125,325,325],
'Type':['Foo','None','None']
})
ce qui ressemble à :
Chr Loc Type
0 1 125 Foo
1 1 325 None
2 5 325 None