从不同列的唯一值索引

时间:2017-11-03 21:42:13

标签: python pandas

我有一堆包含列和行的数据框,我想根据另一列中的唯一值将数据放在一列中。

  flag  name
0  1     bob
1  2     larry
2  1     alice
3  1     mary
4  3     peter
5  4     rick

如果使用

df['flag'].unique()

我得到1 2 3 4

如何获取与这些唯一值对应的名称?

  flag  name
0  1     bob
1  2     larry
4  3     peter
5  4     rick

如果我得到鲍勃,爱丽丝或玛丽,那没关系。我只需要一个该标志值的名称。

2 个答案:

答案 0 :(得分:2)

使用drop_duplicates

df.drop_duplicates(['flag'])
Out[1036]: 
   flag   name
0     1    bob
1     2  larry
4     3  peter
5     4   rick

答案 1 :(得分:0)

Wen的答案更简单,但另一种方法是使用groupby(),然后使用nth()为每个组取第一个条目:

import pandas as pd

df = pd.DataFrame({'flag':[1, 2, 1, 1, 3, 4],
                   'name':['bob', 'larry', 'alice', 'mary', 'peter', 'rick']})

print df.groupby('flag').nth(0)

结果:

       name
flag       
1       bob
2     larry
3     peter
4      rick