如何基于单个列对数据框中的唯一表进行排序?

时间:2019-02-22 08:20:29

标签: python python-3.x pandas dataframe pandas-groupby

具有df值

    0     |     1   |     2
0  sun    |   east  |   pass 
1  moon   |   west  |   pass
2  mars   |   north |   pass
3  saturn |   east  |   pass
4  neptune|   west  |   pass

需要通过查看1列的值来获得不同的df。在第1列中,有两个东方和两个西方,它们的0值不同。

输出应为

  0       |     1   |     2
0  sun    |   east  |   pass 
1  moon   |   west  |   pass
2  mars   |   north |   pass


              or


    0       |     1   |     2
0  saturn   |   east  |   pass 
1  neptune  |   west  |   pass
2  mars     |   north |   pass

所以我的输出只需要0列中的单个值,而不是两个都一样。这里需要太阳和月亮(或土星和海王星)。

1 个答案:

答案 0 :(得分:3)

我相信您需要groupbyjoin-每个组仅需要2列相同的值:

df = df.groupby([1,2], sort=False)[0].apply(' (or) '.join).reset_index().sort_index(axis=1)
print (df)
                   0      1     2
0    sun (or) saturn   east  pass
1  moon (or) neptune   west  pass
2               mars  north  pass