0
我有以下代码:如何包括计数的每个字符,而使用itertools.groupby删除重复项
df= pd.DataFrame(data=all_r_1.to_dataframe().groupby(['user_id'])['type'].sum()).reset_index()
userid | type
20 | aab
21 | ababb
要在type
列中的字符串删除重复的,我有这样的代码:
df['type'] = df['type'].apply(lambda x: ''.join(ch for ch, _ in itertools.groupby(x)))
其产生这样的:
userid | type
20 | ab
21 | abab
这是输入DF:
id | userid | type
1 | 20 | a
2 | 20 | a
3 | 20 | b
4 | 21 | a
5 | 21 | b
6 | 21 | a
7 | 21 | b
8 | 21 | b
但是,我想要做的是包括计数的每个字符,同时删除重复项:
userid | type
20 | a2b
21 | abab2
任何想法如何,我可以修改itertools.groupby
代码,还包括计数?
试试这个: 'DF [ '型'] = DF [ '型']申请(拉姆达X: ''。 join(ch + len(list(group))for ch,itertools.groupby(x)))' –
@Chris_Rands谢谢!我得到了这个错误'TypeError:类型'itertools._grouper'的对象没有len()' – renakre
你把'len(list(group))'? (我编辑了这个到我原来的评论) –