如何创建具有最少值计数的子DatafFrame

时间:2018-07-17 08:37:04

标签: python pandas indexing pandas-groupby

我有一个DataFrame格式:

    a   b Class
0   1  10     A
1   2  12     A
2   3   2     A
3  12   5     B
4   5   7     A
5   6   8     B
6   7  17     A
7   1   1     B
8   5   0     B

从这个DataFrame中我想得到另一个DataFrame,它对列Class的每个值至少具有N行(这里,类'A'中至少有N行)和B行的N行)。

新的DataFrame应该包括从DataFrame的末尾到满足条件的行的所有行。

在上面的数据中,N = 2,我希望得到:

   a   b Class
4  5   7     A
5  6   8     B
6  7  17     A
7  1   1     B
8  5   0     B

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以按类提取最后2个项目,并提取结果的第一个索引。

然后从此点开始在原始数据帧上建立索引。

idx = df.groupby('Class').tail(2).index[0]

res = df[idx:]

print(res)

   a   b Class
4  5   7     A
5  6   8     B
6  7  17     A
7  1   1     B
8  5   0     B