【问题标题】:return a unique pair of columns in python regardless of the order [duplicate]无论顺序如何,都在python中返回一对唯一的列[重复]
【发布时间】:2019-11-18 14:44:36
【问题描述】:

我有一个如下所示的数据框:

df = pd.DataFrame({'A':['yes','yes','yes','yes','no','no','yes','yes','yes','no'],
                   'B':['yes','no','no','no','yes','yes','no','yes','yes','no']})

df
----------------------------
index         A        B
0           yes      yes
1           yes       no
2           yes       no
3           yes       no
4            no      yes
5            no      yes
6           yes       no
7           yes      yes
8           yes      yes
9            no       no
-----------------------------

理想的输出应该是这样的:

----------------------------
          A       B       
----------------------------
0         no       no           
1        yes       no       
2        yes      yes      
----------------------------

yesno 没有四种组合,只有 3 种组合,所以yes nono yes 将是同一对,每对的频率并不重要。

我尝试过使用groupby,但显然它会给你 4 双,我也尝试过pd.unique。与this so post 非常相似的问题,但不完全相同,我从那里借用了这个例子。谢谢大家!

【问题讨论】:

  • df[['A','B']].drop_duplicates ?
  • 沿第一个轴排序,删除重复项。

标签: python pandas


【解决方案1】:

使用np.sort:

pd.DataFrame(np.sort(df,axis=1),columns =df.columns ).drop_duplicates()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-28
    • 2012-07-10
    • 2023-03-11
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    相关资源
    最近更新 更多