gpt4 book ai didi

python - 从 pandas 列中删除仅彼此存在的重复字母,Python

转载 作者:行者123 更新时间:2023-12-01 07:40:39 25 4
gpt4 key购买 nike

来自这个问题:Python: Best Way to remove duplicate character from string答案:

''.join(ch for ch, _ in itertools.groupby(string_to_remove)

我知道如何删除仅彼此相邻的重复字母,如何将此解决方案应用于 pandas 中的列?

df:

df=pd.DataFrame({'A':['ODOODY','LLHHEELLO'],'B':['NNMminee','DDasdss']})

预期结果:

A,B
ODODY,NMine
LHELO,Dasds

尝试过:df['A'] = df['A'].apply(lambda x: ''.join(ch for ch, _ in itertools.groupby(x['A'])))谢谢!

最佳答案

使用DataFrame.applymap ,如果需要过滤列以删除重复项:

import itertools
cols = ['A','B']
df[cols] = df[cols].applymap(lambda x: ''.join(ch for ch, _ in itertools.groupby(x)))
#for all columns
#df = df.applymap(lambda x: ''.join(ch for ch, _ in itertools.groupby(x)))
print (df)
A B
0 ODODY NMmine
1 LHELO Dasds

解决方案 DataFrame.apply是可能的,但需要单独处理每个值,因此添加了列表理解:

df[cols] = df[cols].apply(lambda x: [''.join(ch for ch, _ in itertools.groupby(y)) for y in x])
print (df)
A B
0 ODODY NMmine
1 LHELO Dasds

或者使用Series.apply :

f = lambda x: ''.join(ch for ch, _ in itertools.groupby(x))
df['A'] = df['A'].apply(f)
df['B'] = df['B'].apply(f)

关于python - 从 pandas 列中删除仅彼此存在的重复字母,Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56736595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com