我有一个数据框:
id rev names 34e A su,ra,ve,ra,de,ra 45e R ra,su,su,ve,de 55e G su,ra,de 41e M su,de,mu,er,su
现在我需要删除重复项,输出应如下所示:
id rev names 34e A su,ra,ve,de 45e R ra,su,ve,de 55e G su,ra,de 41e M su,de,mu,er
如何才能做到这一点?
如果列首先包含字符串split, 转换成sets and join:
split
set
join
df['names'] = df['names'].apply(lambda x: ','.join(set(x.split(','))))
如果列包含列表转换为set and list是必要的:
list
df['names'] = df['names'].apply(lambda x: list(set(x)))
如果订单很重要使用pandas.unique http://pandas.pydata.org/pandas-docs/stable/generated/pandas.unique.html:
df['names'] = df['names'].apply(lambda x: ','.join(pd.unique(x.split(',')))) df['names'] = df['names'].apply(lambda x: list(pd.unique(x)))