首页 > 解决方案 > 如何在python中的同一对象中返回列表中的唯一对(具有不同的顺序)

问题描述

我怎样才能得到表中的唯一对?

第 1 栏 第 2 栏 第 3 栏
一个
一个
一个
C D
F

我想获得第 1 列和第 3 列的唯一对,并返回像 {'A&B','C&D','E&F'} 这样的值

标签: pythonunique

解决方案


尝试unique

>>> (df['Col 1'] + '&' + df['Col 3']).unique()
array(['A&B', 'B&A', 'C&D', 'E&F'], dtype=object)
>>> 

或者drop_duplicates

>>> (df['Col 1'] + '&' + df['Col 3']).drop_duplicates()
0    A&B
2    B&A
3    C&D
4    E&F
dtype: object
>>> 

如果您对待A&B与 相同B&A,请尝试:

>>> df[['Col 1', 'Col 3']].agg(sorted, axis=1, result_type='expand').agg('&'.join, axis=1).unique()
array(['A&B', 'C&D', 'E&F'], dtype=object)
>>> 

或者:

>>> df[['Col 1', 'Col 3']].agg(sorted, axis=1, result_type='expand').agg('&'.join, axis=1).drop_duplicates()
0    A&B
3    C&D
4    E&F
dtype: object
>>> 

推荐阅读