pandas DataFrame实现组内排名

获取分组后排名

主要使用groupby 和 rank方法

import pandas as pd
data = {'year':['2018','2018','2018','2019','2019'],
       '数学':[23, 99, 90, 30, 10]}
df = pd.DataFrame(data)
df

df['rank'] = df.groupby('year')['数学'].rank(ascending=False)
df

pandas DataFrame实现组内排名_第1张图片

获取组内的topN

主要使用sort_values 、 groupby 和 head

import pandas as pd
data = {'year':['2018','2018','2018','2019','2019'],
       '数学':[23, 99, 90, 30, 10]}
df = pd.DataFrame(data)
df

df = df.sort_values(by="数学", ascending=False).groupby(["year"]).head(2)
df

pandas DataFrame实现组内排名_第2张图片

你可能感兴趣的:(pandas,pandas,python,数据分析)