将重复值更改为唯一

时间:2019-12-12 08:47:20

标签: python data-science

您好,我有一个数据框,其中一列具有重复的值。我想在这些重复值的末尾迭代地添加一个字母,以便使它们唯一,但我想保持原始顺序。所以如果我有:

df['column_name'] = [**John**,George,Christian,Denice,**John**]

我想退回

df_clean = [**John_A**,George,Christian,Denice,**John_B**]

我进行了以下修改,返回的名称已更改,但顺序更改了

def gen(L):
    c = Counter(L)
    for elt, count in c.items():
        if count == 1:
            yield elt
        else:
            for letter in letters[:count]:
                yield elt + letter
    return(L)


 df_clean = pd.DataFrame(gen(df))
 df_clean -> [**JohnA**,**JohnB**,George,Christian,Denice]

有没有嵌套循环的聪明方法吗?

1 个答案:

答案 0 :(得分:2)

This的答案应该会对您有所帮助。如果要添加字母而不是数字,这很容易,但是我会让您了解如何实现。