python - 如何从 python 数据框中的列列表中删除重复项?

标签 python pandas list

我有一个数据框:

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,转换为setjoin:

df['names'] = df['names'].apply(lambda x: ','.join(set(x.split(','))))

如果列包含转换为 set 的列表并且 list 是必需的:

df['names'] = df['names'].apply(lambda x: list(set(x)))

如果顺序很重要,请使用 pandas.unique :

df['names'] = df['names'].apply(lambda x: ','.join(pd.unique(x.split(','))))

df['names'] = df['names'].apply(lambda x: list(pd.unique(x)))

关于python - 如何从 python 数据框中的列列表中删除重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53596283/

相关文章:

c++ - 从 C++ 列表中删除对象

python - 如何从 Python 中用户指定目录中的文件名创建列表?

python - Python 中的多处理 : Handle Multiple Worker Threads

python - Pandas:如何构建需要先前输出作为输入的行式应用

python - 如何让 tornado TCPClient 使用代理(http 或 socks)?

python - Pandas 匹配 2 列中最接近的日期时间值 - 类型整数/长错误

list - 每次递增都会创建一个子列表的 Lisp 程序

python - 将类实例方法传递给 Python 中的另一个函数 (2.7)

python - 使用 Pandas,我如何根据第一个空间进行拆分。

arrays - 如何通过组合 column_names 列表和 numpy 数组然后添加更多列来创建 pandas DataFrame?