python - 如何对 Pandas DF 列中的值进行排序并删除重复项

标签 python python-3.x pandas sorting

这可能是一个非常基本的问题,但我一直无法找到答案,所以这里...

问题:

有没有一种方法可以按字母顺序对值进行排序,同时删除任何重复的实例?

这是我所拥有的:

data = ['Car | Book | Apple','','Book | Car | Apple | Apple']
df = pd.DataFrame(data,columns=['Labels']
print(df)

    Labels
0   Car | Book | Apple
1   
2   Book | Car | Apple | Apple

期望的输出:

    Labels
0   Apple | Book | Car
1   
2   Apple | Book | Car

谢谢!

最佳答案

str.split

之后

str.join

df=df.replace({' ':''},regex=True)
df.Labels.str.split('|').apply(set).str.join('|')
Out[339]: 
0    Apple|Book|Car
1                  
2    Apple|Book|Car
Name: Labels, dtype: object

根据注释添加sorted

df.Labels.str.split('|').apply(lambda x : sorted(set(x),reverse=False)).str.join(' | ')

关于python - 如何对 Pandas DF 列中的值进行排序并删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49326927/

相关文章:

Python 内部类 self

python-3.x - 按列名拼接 Pandas 数据框

python - 有什么办法可以使这段代码更快?

python - 如何根据列中元素的数量从 Pandas 数据框中删除一行

python-3.x - 无法使用 Psycopg2 在 Amazon Redshift 中创建表

python - Pandas 数据框中单列的字数

python - 如何使用Python对需要Google账号登录的网站进行网页爬取?

python - 生成随机 DNA 序列

python - 使用 matplotlib/numpy 进行线性回归

python-3.x - Python : How to print on same line, 清除以前的文本?