Ho un frame di dati df, con due colonne: Script (con testo) e Speaker
Script Speaker
aze Speaker 1
art Speaker 2
ghb Speaker 3
jka Speaker 1
tyc Speaker 1
avv Speaker 2
bhj Speaker 1
E ho il seguente elenco: L = ['a','b','c']
Con il seguente codice,
df = (df.set_index('Speaker')['Script'].str.findall('|'.join(L))
.str.join('|')
.str.get_dummies()
.sum(level=0))
print (df)
Ottengo questo frame di dati df2:
Speaker a b c
Speaker 1 2 1 1
Speaker 2 2 0 0
Speaker 3 0 1 0
Quale riga posso aggiungere nel mio codice per ottenere, per ogni riga del mio frame di dati df2, un valore percentuale di tutte le righe pronunciate dal relatore, al fine di avere il seguente frame di dati df3:
Speaker a b c
Speaker 1 50% 25% 25%
Speaker 2 100% 0 0
Speaker 3 0 100% 0