2017-09-15 1 views
0

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

+0

Haben Sie nicht gerade diese Frage gestellt? Warum haben die ersten Transaktionsnummern Bindestriche vor sich? –

+0

* 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

Antwort

0

Suchen Sie nach äußeren Verschmelzung?

results = pd.merge(X, D, how='outer', on= "Transaction_Number")