我有一个数据框df
,有两列:脚本(带文本)和扬声器
Script Speaker
aze Speaker 1
art Speaker 2
ghb Speaker 3
jka Speaker 1
tyc Speaker 1
avv Speaker 2
bhj Speaker 1
我有以下列表: L = ['a','b','c']
使用以下代码,
df = (df.set_index('Speaker')['Script'].str.findall('|'.join(L))
.str.join('|')
.str.get_dummies()
.sum(level=0))
print (df)
我得到这个数据框df2
:
Speaker a b c
Speaker 1 2 1 1
Speaker 2 2 0 0
Speaker 3 0 1 0
我可以在代码中添加哪一行,以便为数据框的每一行获取df2
讲话者说出的所有行的百分比值,以便具有以下数据框df3
:
Speaker a b c
Speaker 1 50% 25% 25%
Speaker 2 100% 0 0
Speaker 3 0 100% 0