我有一堆包含列和行的数据框,我想根据另一列中的唯一值将数据放在一列中。
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
如果我得到鲍勃,爱丽丝或玛丽,那没关系。我只需要一个该标志值的名称。
答案 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