【发布时间】:2020-04-17 13:13:43
【问题描述】:
我有一个数据框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
【问题讨论】:
标签: python python-3.x pandas dataframe