2 Series zu einer Matrix und Namensbestandteile überprüfen

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
MacGruber
User
Beiträge: 63
Registriert: Sonntag 28. Mai 2017, 13:04

Guten Morgen wertes Forum,

ich habe eine Frage zu Pandas.
Ich habe 2 Series. Die erste Series beinhaltet Objekttexte und die zweite Series einzelne Wörter. Ich würde gerne beide Series in einem Dataframe so zusammenfassen, dass die Objekttexte in der ersten Spalte des DataFrames stehen (oder als Index) und die zweite Series soll dann die Überschriften aller weiterer Spalten sein. Inhalt dieser Spalten sollen dann nur True oder False sein. True, wenn das Wort (die Spaltenüberschrift) im Objekttext vorkommt, und False, wenn nicht.
Das ist jetzt vielleicht etwas schwer nachzuvollziehen.
Hier also noch ein Beispiel.

Objekttexte
Antriebsmotor vorne
Antriebsmotor hinten
Antriebsachse 2t
Lenkachse 2t

Wörter
Achse
LED
Motor

und daraus soll werden:

Objekttexte;Achse;LED;Motor
Antriebsmotor vorne;False;False;True
Antriebsmotor hinten;False;False;True
Antriebsachse 2t;True;False;False
Lenkachse 2t;True;False;False

Ziel des ganzen Soll sein, dass ich weiß, wie häufig die jeweiligen Wörter in den Texten vorkommen. Groß- und Kleinschreibung möchte ich dabei ignorieren.
Weiß jemand Rat?

Gruß Sascha
einfachTobi
User
Beiträge: 491
Registriert: Mittwoch 13. November 2019, 08:38

Code: Alles auswählen

import pandas as pd
objekttexte = ["Antriebsmotor vorne",
               "Antriebsmotor hinten",
               "Antriebsachse 2t",
               "Lenkachse 2t"]
woerter = ["Achse", "LED", "Motor"]
df = pd.DataFrame(objekttexte, columns=["Objekttexte"])
for wort in woerter:
    df[wort] = df['Objekttexte'].str.contains(wort, case=False)
print(df)
Erklärung: Du erstellst ein DataFrame mit der Spalte `Objekttexte`. Dann wird wortweise geprüft, ob `Objekttexte` das jeweilige Wort enthält (mittels Series.str.contains()). Dies gibt dir gleich ein Series-Objekt mit den entsprechenden Wahrheitswerten zurück, aus der eine neue Spalte mit dem Label des betrachteten Worts erstellt wird.
MacGruber
User
Beiträge: 63
Registriert: Sonntag 28. Mai 2017, 13:04

Danke Tobi!
Hat geholfen. Dann war es doch so einfach. Bin noch nicht so in der richtigen Denke drinne für Pandas. Vielleicht denke ich da noch zu kompliziert.

Wie kann ich eigentlich hier den Thread schließen?
Antworten