HOWTO · Pandas
Kombinieren Sie zwei Textspalten in DataFrame in Pandas
Kombinieren von Spalten in DataFrame mit '+'-Operator, apply(), map(), str.cat(), agg() Methoden in der Pandas-Bibliothek
Auf dieser Seite
Wenn Sie mit Datensätzen arbeiten, müssen Sie manchmal zwei oder mehr Spalten zu einer Spalte kombinieren. Zum Beispiel haben Sie einen Datensatz mit first name und last name in Spalten getrennt, und nun benötigen Sie die Spalte Full Name. Nachfolgend sind die verschiedenen Möglichkeiten aufgelistet, diese Aufgabe zu erfüllen.
+Operatormap()df.apply()Series.str.cat()df.agg()
In den nächsten Abschnitten werden wir denselben DataFrame wie folgt verwenden,
import pandas as pd
data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
print(df)
Folgendes wird ausgegeben.
First Last Age
0 Ali Azmat 30
1 Sharukh Khan 40
2 Linus Torvalds 70
+ Operator-Methode
Verwenden Sie den Operator + einfach, wenn Sie Daten desselben Datentyps kombinieren wollen.
import pandas as pd
data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
df["Full Name"] = df["First"] + " " + df["Last"]
print(df)
Es wird folgendes ausgegeben.
First Last Age Full Name
0 Ali Azmat 30 Ali Azmat
1 Sharukh Khan 40 Sharukh Khan
2 Linus Torvalds 70 Linus Torvalds
df.map() Methode
Sie können auch die Funktion df.map() verwenden, um den Text von zwei Spalten zu kombinieren.
import pandas as pd
data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
df["Full Name"] = df["First"].map(str) + " " + df["Last"]
print(df)
Folgendes wird ausgegeben.
First Last Age Full Name
0 Ali Azmat 30 Ali Azmat
1 Sharukh Khan 40 Sharukh Khan
2 Linus Torvalds 70 Linus Torvalds
df.apply() Methode
Die Funktion join() wird auch zum Verbinden von Zeichenketten verwendet. Wir können sie mit der Funktion df.apply() auf unseren DataFrame anwenden. Die df.apply() Funktion wird verwendet, um eine andere Funktion auf eine bestimmte Achse anzuwenden.
import pandas as pd
data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df["Full Name"] = df[["First", "Last"]].apply(" ".join, axis=1)
print(df)
Das Folgende wird ausgegeben.
First Last Age Full Name
0 Ali Azmat 30 Ali Azmat
1 Sharukh Khan 40 Sharukh Khan
2 Linus Torvalds 70 Linus Torvalds
Series.str.cat() Methode
Wir können diese Pandas Series.str.cat() Methode auch verwenden, um Zeichenketten in der Serie/Index mit dem angegebenen Trennzeichen zu verketten.
import pandas as pd
data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df["Full Name"] = df["First"].str.cat(df["Last"], sep=" ")
print(df)
Folgendes wird ausgegeben.
First Last Age Full Name
0 Ali Azmat 30 Ali Azmat
1 Sharukh Khan 40 Sharukh Khan
2 Linus Torvalds 70 Linus Torvalds
df.agg() Methode
Genau wie df.apply() wird diese Methode auch verwendet, um eine bestimmte Funktion über die angegebene Achse anzuwenden.
import pandas as pd
data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df["Full Name"] = df[["First", "Last"]].agg(" ".join, axis=1)
print(df)
Folgendes wird ausgegeben.
First Last Age Full Name
0 Ali Azmat 30 Ali Azmat
1 Sharukh Khan 40 Sharukh Khan
2 Linus Torvalds 70 Linus Torvalds