删除熊猫记录中的重复值

时间:2019-07-30 14:56:36

标签: python dataframe duplicates distinct-values

我想删除每列动物的重复项。

我需要类似这篇文章的内容,但需要使用python。由于某种原因,我现在无法解决这个问题,而且遇到了麻烦。

Remove duplicate records in dataframe

我曾尝试使用重复副本,唯一,不重复等方式。运气不好。

df.drop_duplicates(subset = None,keep =“ first”,inplace = False) df


df = pd.DataFrame ({'animals':['pink pig, pink pig, pink pig','brown cow, brown cow','pink pig, black cow','brown horse, pink pig, brown cow, black cow, brown cow']})

#input:
    animals
0   pink pig, pink pig, pink pig
1   brown cow, brown cow
2   pink pig, black cow
3   brown horse, pink pig, brown cow, black cow, brown cow

#I would like the output to look like this:
    animals
0   pink pig
1   brown cow
2   pink pig, black cow
3   brown horse, pink pig, brown cow, black cow

2 个答案:

答案 0 :(得分:7)

做到这一点:

(N-K)(N-K-1)/2

输出:

K.(2N-K-1)

说明:

我把你的琴弦变成了一个清单。然后,我将列表变成一个集合,以删除重复项。然后,我将集合变成一个列表,然后我将列表拆分成一个字符串。请告诉我是否不清楚!

答案 1 :(得分:1)

如果您希望保留项目的原始顺序(转换为集合会使它们无序),则应使用以下功能。

def drop_duplicates(items):
    # `items` is a comma separated string, e.g. "dog, dog, cat".
    result = []
    seen = set()
    for item in items.split(','):
        item = item.strip()
        if item not in seen:
            seen.update([item])
            result.append(item)
    return ', '.join(result)

>>> df['animals'].apply(drop_duplicates)
0                pig
1                cow
2           pig, cow
3    horse, pig, cow
Name: animals, dtype: object