相关链接: pandas dataframe groupby和获取第N行
我可以使用groupby
方法,并选择前N个组成员:
df.groupby('columnA').head(N)
但是如果我想要每个组的第一、二和第四个成员呢?
相关链接: pandas dataframe groupby和获取第N行
我可以使用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
您可以执行
df.groupby('columnA').apply(lambda x : x.iloc[[has to 0,1,3],:]).reset_index(level=0,drop=True)
[0, 1, 3]
。 - cs95df1 = df.groupby('columnA').head(4)
df1.drop(df.groupby('columnA').head(4).index.values[2], axis=0)