我想删除每列动物的重复项。
我需要类似这篇文章的内容,但需要使用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
答案 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