相关:pandas dataframe groupby and get nth row
我可以使用 groupby 方法并选择前 N 个组成员:
df.groupby('columnA').head(N)
但是如果我想要每个组的第一个、第二个和第四个成员怎么办?
请您参考如下方法:
GroupBy.nth需要一个列表,所以你可以做
df = pd.DataFrame({'A': list('aaaabbbb'), 'B': list('abcdefgh')})
df.groupby('A').nth([0, 1, 3])
B
A
a a
a b
a d
b e
b f
b h
# To get the grouper as a column, use as_index=False
df.groupby('A', as_index=False).nth([0, 1, 3])
A B
0 a a
1 a b
3 a d
4 b e
5 b f
7 b h
