我想将数据框分组为两列,然后对组内的聚合结果进行排序.
In [167]:
df
Out[167]:
count job source
0 2 sales A
1 4 sales B
2 6 sales C
3 3 sales D
4 7 sales E
5 5 market A
6 3 market B
7 2 market C
8 4 market D
9 1 market E
In [168]:
df.groupby(['job','source']).agg({'count':sum})
Out[168]:
count
job source
market A 5
B 3
C 2
D 4
E 1
sales A 2
B 4
C 6
D 3
E 7
Run Code Online (Sandbox Code Playgroud)
我现在想在每个组中按降序对count列进行排序.然后只占前三行.得到类似的东西:
count
job …Run Code Online (Sandbox Code Playgroud) pandas groupby中发布了一个新的更通用的问题:每个组中的前 3 个值并存储在 DataFrame 中,并且已在那里回答了一个可行的解决方案。
\n\n在此示例中,我创建了一个数据框df,其中包含一些间隔 5 分钟的随机数据。\n我想创建一个数据框gdf(分组 df),其中列出每小时的3 个最高值。
即:从这一系列值
\n\n VAL\nTIME \n2017-12-08 00:00:00 29\n2017-12-08 00:05:00 56\n2017-12-08 00:10:00 82\n2017-12-08 00:15:00 13\n2017-12-08 00:20:00 35\n2017-12-08 00:25:00 53\n2017-12-08 00:30:00 25\n2017-12-08 00:35:00 23\n2017-12-08 00:40:00 21\n2017-12-08 00:45:00 12\n2017-12-08 00:50:00 15\n2017-12-08 00:55:00 9\n2017-12-08 01:00:00 13\n2017-12-08 01:05:00 87\n2017-12-08 01:10:00 9\n2017-12-08 01:15:00 63\n2017-12-08 01:20:00 62\n2017-12-08 01:25:00 52\n2017-12-08 01:30:00 43\n2017-12-08 01:35:00 77\n2017-12-08 01:40:00 95\n2017-12-08 01:45:00 79\n2017-12-08 01:50:00 77\n2017-12-08 01:55:00 5\n2017-12-08 02:00:00 78\n2017-12-08 02:05:00 41\n2017-12-08 02:10:00 10\n2017-12-08 …Run Code Online (Sandbox Code Playgroud)