我 认为 第n种方法应该做到这一点:
In [10]: g = df.groupby('ID')In [11]: g.nth(1).dropna()Out[11]: col1 col2 col3 col4 col5ID 1 1.1 D 4.7 x/y/z 2002 3.4 B 3.8 x/u/v 4043 1.1 A 2.5 x/y/z/n 4045 2.6 B 4.6 x/y 500在0.13中,另一种方法是使用cumcount:
df[g.cumcount() == n - 1]
…这 明显 更快。
In [21]: %timeit g.nth(1).dropna()100 loops, best of 3: 11.3 ms per loopIn [22]: %timeit df[g.cumcount() == 1]1000 loops, best of 3: 286 µs per loop



