我有一个带有 2 列的熊猫数据框。 report_tags是逗号分隔的单词,t_f是表示是或否(1 或 0)的标志。我想将这些逗号分隔的单词和 group by 分开t_f。tag/t_f然后在一个名为的新列中对分组求和countdf report_tags t_f0 bec,eac,fbi,ic3,scam 11 dlink,router,wifi 02 adobe 03 bec, fbi 14 bec, fbi, scam 0期望的输出:df2 tag t_f count0 bec 1 21 eac 1 12 fbi 1 23 ic3 1 14 scam 1 15 dlink 0 16 router 0 17 wifi 0 18 adobe 0 19 bec 0 110 fbi 0 111 scam 0 1
1 回答
鸿蒙传说
TA贡献1865条经验 获得超7个赞
使用str.split+explode
k = dict(sort=False)
(df.set_index('t_f')['report_tags']
.str.split(r',\s*').explode()
.groupby(level=0, **k).value_counts(**k)
.rename('count').reset_index())
t_f report_tags count
0 1 bec 2
1 1 eac 1
2 1 fbi 2
3 1 ic3 1
4 1 scam 1
5 0 adobe 1
6 0 bec 1
7 0 dlink 1
8 0 fbi 1
9 0 router 1
10 0 scam 1
11 0 wifi 1
添加回答
举报
0/150
提交
取消