Tengo un marco de datos df, con dos columnas: Script (con texto) y Speaker
Script Speaker
aze Speaker 1
art Speaker 2
ghb Speaker 3
jka Speaker 1
tyc Speaker 1
avv Speaker 2
bhj Speaker 1
Y tengo la siguiente lista: L = ['a','b','c']
Con el siguiente código,
df = (df.set_index('Speaker')['Script'].str.findall('|'.join(L))
.str.join('|')
.str.get_dummies()
.sum(level=0))
print (df)
Obtengo este marco de datos df2:
Speaker a b c
Speaker 1 2 1 1
Speaker 2 2 0 0
Speaker 3 0 1 0
¿Qué línea puedo agregar en mi código para obtener, para cada línea de mi marco de datos df2, un valor porcentual de todas las líneas pronunciadas por el hablante, para tener el siguiente marco de datos df3:
Speaker a b c
Speaker 1 50% 25% 25%
Speaker 2 100% 0 0
Speaker 3 0 100% 0
fuente
