Ich bin auf ein Datenproblem gestoßen, von dem ich glaube, dass es viele gibt. Ich habe derzeit einen Datensatz, der Transaktionsinformationen enthält. Anhand der Transaction_Number werde ich herausfinden, wie lange jede Person, die an der Transaktion beteiligt war, für sie ausgegeben hat.Eins-zu-Viele-Merge-Zeilen-Ebene
Die endgültige Ausgabe sieht wie folgt aus
Transaction_Number Created On Created_By Time_Diff
27327920232 2014-12-08 03:29:08 jake NaN
27323232336 2017-04-28 18:39:03 James 0
27323232336 2017-04-28 18:26:23 Tony 760.0
Jetzt ist das Problem, dass ich mit Blick auf bin ist, dass ich eine Spalte am fehlt. Was ich gelöst habe, indem ich von der DB abgefragt habe und ein Feld namens "Product_Number" gezogen habe. Ich schließe mich den beiden Tabellen an Transaction_Number an. Hier tritt das Problem auf, dass der zweite Datenrahmenname D die Transaktionsnummer nur einmal aufgelistet hat, die der Produktnummer entspricht. Der Stammdatenrahmen hat mehrere Vorkommen der Transaktionen. Deshalb, wenn ich den folgenden Code ausführe, macht mein Ergebnis keinen Sinn. Ausgabe von nur 4 Übereinstimmungen basierend auf 12K + Möglichkeiten.
X D D
Transaction_Number Transaction_Number Product_Number
27327920232 27327920232 Cw-xs-re-89
27327920232 72732332323 pw-ts-sf-89
27327920232 32338033383 Cw-ns-tn-86
results = pd.merge(X, D, how='inner', on= "Transaction_Number")
Was kann ich tun, um die richtigen Zuordnungen zu finden? Ich habe auch eine linke Verbindung versucht, jede Art von Tipps wird helfen. - Danke
Haben Sie nicht gerade diese Frage gestellt? Warum haben die ersten Transaktionsnummern Bindestriche vor sich? –
* Was kann ich tun, um die richtigen Übereinstimmungen * zu finden? Nur Sie können uns das sagen, da 'merge' nach Bedarf funktioniert. Welche * Product_Number * aus den mehreren * Transaktionen * reinziehen? Zuerst? Letzte? – Parfait