Python Dataframe:在 Python [已关闭] 中删除同一单元格中同一单元格中的重复单词

Python Dataframe: Remove duplicate words in the same cell within a column in Python [closed]

提问人:PineNuts0 提问时间:11/16/2017 最后编辑:cs95PineNuts0 更新时间:4/10/2019 访问量:10727

问:


想改进这个问题吗?通过编辑这篇文章来更新问题,使其仅专注于一个问题。

6年前关闭。

下面显示了一列,其中包含我拥有的数据,另一列包含我想要的重复数据。

enter image description here

老实说,我什至不知道如何在 Python 代码中开始执行此操作。我已经在 R 中阅读了几篇关于此的文章,但没有在 Python 中阅读。

字符串 熊猫 数据帧

评论


答:

21赞 cs95 11/16/2017 #1

如果您只想摆脱连续的重复项,这应该就足够了:

df['Desired'] = df['Current'].str.replace(r'\b(\w+)(\s+\1)+\b', r'\1')
df

           Current          Desired
0       Racoon Dog       Racoon Dog
1          Cat Cat              Cat
2  Dog Dog Dog Dog              Dog
3  Rat Fox Chicken  Rat Fox Chicken

\b        # word boundary
(\w+)     # 1st capture group of a single word
( 
\s+       # 1 or more spaces
\1        # reference to first group 
)+        # one or more repeats
\b

正则表达式从这里开始。


为了删除不连续的重复项,我建议一个涉及数据结构的解决方案:OrderedDict

from collections import OrderedDict

df['Desired'] = (df['Current'].str.split()
                              .apply(lambda x: OrderedDict.fromkeys(x).keys())
                              .str.join(' '))
df

           Current          Desired
0       Racoon Dog       Racoon Dog
1          Cat Cat              Cat
2  Dog Dog Dog Dog              Dog
3  Rat Fox Chicken  Rat Fox Chicken

评论

0赞 PineNuts0 11/16/2017
了不起!谢谢