Ich versuche, DNA-Spirale von verschiedenen Bakterien mit ihren Vorfahren übereinstimmen und ich habe etwa 1 Million Beobachtungen. Ich möchte den nächsten Vorfahren für jedes Bakterium identifizieren, dh ich möchte sie mit derselben oder älteren Generation vergleichen (gleiche oder kleinere Generationszahlen), so dass mein Datenrahmen so aussieht (zur Vereinfachung nehmen wir an, DNA-Vektor besteht aus einer Zahl):Den Mindestabstand für jede Zeile mit Pandas finden
bacteria_id generation DNA_vector
213 230 23
254 230 18
256 229 39
289 229 16
310 228 24
324 228 45
ich habe versucht, eine Matrix und wählt den kleinsten Wert aus dieser Matrix für jedes Bakterium zu schaffen, sondern, wie es von vielen Zeilen und Spalten bestehen, ich memory error
vor Matrix erstellt wird. Angenommen, es sind keine Bakterien, sondern Autos, und ich vergleiche jedes Auto mit seiner eigenen Generation (z. B. Autos, die 2010 eingeführt wurden) und mit den älteren. Und lassen Sie uns auch DNA_vector in die Anzahl der Features ändern. Und ich nehme an, dass es anderen Autos ähnlicher ist, wenn der Unterschied zwischen der Anzahl von Merkmalen kleiner ist. Also ich möchte zwei zusätzliche Spalten erstellen. Zuerst wird man den minimalen Unterschied erkennen (beispielsweise für die erste wird es 1 sein, und das ähnlichste Auto wird Modell 310 sein)
Erwartete Ausgabe lautet:
bacteria_id generation DNA_vector most_similar_bacteria distance
213 230 23 310 1 (i.e. 24 -23)
254 230 18 289 2
256 229 39 324 6
289 229 16 228 8
310 228 24 324 19
324 228 45 NA NA
Haben Sie irgendwelche Empfehlungen?
Könnten Sie bitte alle Verweise auf Genetik entfernen und die Frage in einem breiten Thema stellen? Es ist schwierig, die Frage zu verstehen, wenn Sie nicht wissen, welchen Vergleich Sie verwenden möchten – Keith
oh ok, ich werde es vereinfachen –
Ist es jetzt klarer? –