Ich habe einen Datenrahmen df
mit zwei Spalten: Skript (mit Text) und Sprecher
Script Speaker
aze Speaker 1
art Speaker 2
ghb Speaker 3
jka Speaker 1
tyc Speaker 1
avv Speaker 2
bhj Speaker 1
Und ich habe folgende Liste: L = ['a','b','c']
Mit dem folgenden Code:
df = (df.set_index('Speaker')['Script'].str.findall('|'.join(L))
.str.join('|')
.str.get_dummies()
.sum(level=0))
print (df)
Ich erhalte diesen Datenrahmen df2
:
Speaker a b c
Speaker 1 2 1 1
Speaker 2 2 0 0
Speaker 3 0 1 0
Welche Zeile kann ich in meinen Code einfügen, um für jede Zeile meines Datenrahmens df2
einen Prozentwert aller vom Sprecher gesprochenen Zeilen zu erhalten, um den folgenden Datenrahmen zu erhalten df3
:
Speaker a b c
Speaker 1 50% 25% 25%
Speaker 2 100% 0 0
Speaker 3 0 100% 0
quelle