pandas groupby 取每组的前几行记录方法

比如对于如下数据,提取各id的num值位于前3的数据:

id num
a 13
a 24
b 6
b 7
a 8
a 9
b 10
c 11
c 14
c 35
c 24
c 66
b 46

首先读取表格数据:

import pandas as pd
df = pd.read_excel(r'C:\Users\Mortal\Desktop\result.xlsx')
df.head()

ascending参数的值改为False就完成对数据表的降序排列工作

df.sort_values(['id','num'],ascending=False,inplace=True)
grouped = df.groupby(['id']).head(3)
grouped

pandas groupby 取每组的前几行记录方法_第1张图片

将结果写入csv文件:

grouped.to_csv(r'C:\Users\Mortal\Desktop\ex.csv',index=False, encoding='utf_8_sig')

注:未指定编码格式写入csv时,中文显示乱码

你可能感兴趣的:(学习笔记)