Sagen wir, ich habe zwei Datenrahmen, und die Spaltennamen für beide:Python Pandas wie zwei Tabellen basierend auf Teilstring zusammenführen/verbinden?
table 1 columns:
[ShipNumber, TrackNumber, Comment, ShipDate, Quantity, Weight]
table 2 columns:
[ShipNumber, TrackNumber, AmountReceived]
ich die beiden Tabellen, wenn entweder ‚ShipNumber‘ oder ‚Tracknumber‘ aus der Tabelle zusammenführen möchten 2 in ‚Kommentar‘ finden von Tabelle 1.
auch werde ich erklären, warum
merged = pd.merge(df1,df2,how='left',left_on='Comment',right_on='ShipNumber')
in diesem Fall nicht funktioniert.
"Kommentar" -Spalte ist ein Block von Texten, die alles enthalten können, so kann ich keine genaue Übereinstimmung wie tab2.ShipNumber == tab1.Comment tun, da tab2.ShipNumber oder tab2.TrackNumber als Teilzeichenfolge in gefunden werden kann tab1.Kommentar.
Die gewünschte Ausgabetabelle sollten alle einzigartigen Spalten aus zwei Tabellen:
output table column names:
[ShipNumber, TrackNumber, Comment, ShipDate, Quantity, Weight, AmountReceived]
Ich hoffe, meine Frage Sinn macht ... Jede Hilfe ist wirklich, wirklich zu schätzen!
note
Das ultimative Ziel ist zwei Sätze fusionieren mit (shipnumber == shipnumber | Tracknummer == Tracknummer | shipnumber in Kommentare | Tracknummer in den Kommentaren), aber ich habe zwei Untergruppen erstellt für die ersten beiden Bedingungen, und jetzt arbeite ich an den 3. und 4. Bedingungen.
Können Sie eine neue Spalte "ExtractedNum" erstellen, indem Sie einen regulären Ausdruck in der Spalte "Kommentar" verwenden, um etwas zu finden, das wie ShipNumber oder TrackNumber aussieht? Dann können Sie in der neuen ExtractedNum-Spalte zusammenführen. Oder ist es möglich, dass mehr als 1 Zahl im Kommentar steht? – nanojohn
die ShipNumber und TrackNumber können nicht im selben Format bleiben .... (einige Ausnahmen existieren und wollen diese nicht ausschließen). deshalb möchte ich nur mit der Quelle übereinstimmen (Tabelle 2). und der "Kommentar" ist ein Klecks von Texten kann von allem sein. – alwaysaskingquestions