相关疑难解决方法(0)

熊猫在每组中获得最高n条记录

假设我有像这样的pandas DataFrame:

>>> df = pd.DataFrame({'id':[1,1,1,2,2,2,2,3,4],'value':[1,2,3,1,2,3,4,1,1]})
>>> df
   id  value
0   1      1
1   1      2
2   1      3
3   2      1
4   2      2
5   2      3
6   2      4
7   3      1
8   4      1
Run Code Online (Sandbox Code Playgroud)

我想为每个id获取一个包含前2条记录的新DataFrame,如下所示:

   id  value
0   1      1
1   1      2
3   2      1
4   2      2
7   3      1
8   4      1
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式在组内编号记录:

>>> dfN = df.groupby('id').apply(lambda x:x['value'].reset_index()).reset_index()
>>> dfN
   id  level_1  index  value
0   1        0      0      1
1   1        1      1      2 …
Run Code Online (Sandbox Code Playgroud)

python top-n greatest-n-per-group window-functions pandas

138
推荐指数
6
解决办法
12万
查看次数