Ist es möglich, nur einige Spalten zusammenzuführen? Ich habe einen DataFrame df1 mit den Spalten x, y, z und df2 mit den Spalten x, a, b, c, d, e, f usw.
Ich möchte die beiden DataFrames auf x zusammenführen, aber ich möchte nur die Spalten df2.a, df2.b zusammenführen - nicht den gesamten DataFrame.
Das Ergebnis wäre ein DataFrame mit x, y, z, a, b.
Ich könnte die unerwünschten Spalten zusammenführen und dann löschen, aber es scheint, als gäbe es eine bessere Methode.
Antworten:
Sie können den Sub-DataFrame (nur mit diesen Spalten) zusammenführen:
quelle
list('xab')
Nimmt jedes Element (Buchstaben) der Zeichenfolge 'xab' und konvertiert es in ein Listenelement, sodass eslist('xab')
zurückkehrt['x', 'a', 'b']
. Das funktioniert, wenn jede Spalte einen einzelnen Buchstaben als Namen hat. In Ihrem Fall müssen Sie df1.merge ausführen (df2 ['Unique_External_Users'], * other_arguments). ... Höchstwahrscheinlich haben Sie es bereits gelöst und dies nur Neulingen wie mirSie möchten ZWEI Klammern verwenden. Wenn Sie also eine VLOOKUP-Aktion ausführen:
Dadurch erhalten Sie alles im ursprünglichen df + und fügen die entsprechende Spalte in df2 hinzu, der Sie beitreten möchten.
quelle
Wenn Sie Spalten aus dem Zieldatenrahmen löschen möchten, die Spalten jedoch für den Join erforderlich sind, können Sie Folgendes tun:
Das
.drop('key1')
Teil verhindert, dass 'key1' im resultierenden Datenrahmen beibehalten wird, obwohl es zunächst erforderlich ist, sich anzuschließen.quelle
KeyError: "['key1'] not found in axis"
Sie können verwenden
.loc
, um die spezifischen Spalten mit allen Zeilen auszuwählen und diese dann abzurufen. Ein Beispiel ist unten:In diesem Beispiel führen Sie Datenrahmen1 und Datenrahmen2 zusammen. Sie haben sich für eine äußere linke Verknüpfung mit 'Schlüssel' entschieden. Für dataframe2 haben Sie jedoch angegeben
.iloc
, dass Sie die gewünschten Zeilen und Spalten in einem numerischen Format angeben können. Mit:
können Sie alle Zeilen auswählen, aber[0:5]
die ersten 5 Spalten auswählen . Sie können verwenden.loc
, um nach Namen anzugeben, aber wenn Sie mit langen Spaltennamen arbeiten, ist dies.iloc
möglicherweise besser.quelle
.loc
dass dadurch eine Kopie erstellt wird , und auf einem großen df kann dies schmerzhaft sein. Es ist möglicherweise besser, zusammenzuführen, als sofort einen Spaltenabschnitt im selben Ausdruck zu erstellen.Hiermit werden ausgewählte Spalten aus zwei Tabellen zusammengeführt.
Wenn
table_1
enthältt1_a,t1_b,t1_c..,id,..t1_z
Spalten undtable_2
enthältt2_a, t2_b, t2_c..., id,..t2_z
Spalten, und nur t1_a, id, t2_a ist in dem Finaltisch erforderlich, dannquelle