Les Pandas dataframe obtenir la première ligne de chaque groupe

J'ai une pandas DataFrame comme suit.

df = pd.DataFrame({'id' : [1,1,1,2,2,3,3,3,3,4,4,5,6,6,6,7,7],
                'value'  : ["first","second","second","first",
                            "second","first","third","fourth",
                            "fifth","second","fifth","first",
                            "first","second","third","fourth","fifth"]})

Je veux du groupe par cette ["id","valeur"] et obtenir la première ligne de chaque groupe.

        id   value
0        1   first
1        1  second
2        1  second
3        2   first
4        2  second
5        3   first
6        3   third
7        3  fourth
8        3   fifth
9        4  second
10       4   fifth
11       5   first
12       6   first
13       6  second
14       6   third
15       7  fourth
16       7   fifth

Résultat attendu

    id   value
     1   first
     2   first
     3   first
     4  second
     5  first
     6  first
     7  fourth

J'ai essayé de suivre ce qui ne donne que la première ligne de la DataFrame. Toute aide concernant ce qui est apprécié.

In [25]: for index, row in df.iterrows():
   ....:     df2 = pd.DataFrame(df.groupby(['id','value']).reset_index().ix[0])
  • Je me rends compte de cette question est assez vieux, mais je vous suggère d'accepter la réponse de @vital_dml car le comportement de first() à l'égard de nans est très surprenant et quelque chose que je pense que la plupart des gens ne s'attendent pas.