Tôi có một khung dữ liệu df
, với hai cột: Script (có văn bản) và Loa
Script Speaker
aze Speaker 1
art Speaker 2
ghb Speaker 3
jka Speaker 1
tyc Speaker 1
avv Speaker 2
bhj Speaker 1
Và tôi có danh sách sau đây: L = ['a','b','c']
Với đoạn mã sau,
df = (df.set_index('Speaker')['Script'].str.findall('|'.join(L))
.str.join('|')
.str.get_dummies()
.sum(level=0))
print (df)
Tôi có được khung dữ liệu này df2
:
Speaker a b c
Speaker 1 2 1 1
Speaker 2 2 0 0
Speaker 3 0 1 0
Tôi có thể thêm dòng nào vào mã của mình để nhận được, đối với mỗi dòng trong khung dữ liệu của tôi df2
, giá trị phần trăm của tất cả các dòng được nói bởi người nói, để có khung dữ liệu sau df3
:
Speaker a b c
Speaker 1 50% 25% 25%
Speaker 2 100% 0 0
Speaker 3 0 100% 0