如何使用pandas获取电影数据集中各年度的TOP3热门电影类型
Pandas分组取每组TopN记录的实现方法
实现代码
假设你的原始数据集存储在名为df的DataFrame中,直接运行以下代码即可得到预期结果:
import pandas as pd # 按年份分组后取每组计数Top3的类型 top3_genre_per_year = df.groupby('year', group_keys=False)\ .apply(lambda group: group.nlargest(3, 'imdb_title_id', keep='first'))\ .reset_index(drop=True)
常见错误说明
你之前直接调用nlargest没有得到正确结果,大概率是没有搭配分组逻辑,直接对全表执行了nlargest,这样取的是全数据集计数最高的3条记录,而非每个年份的Top3。
参数说明
groupby('year', group_keys=False):按照年份字段对数据分组,group_keys=False避免结果额外生成分组索引层级group.nlargest(3, 'imdb_title_id', keep='first'):对每个分组内的子表,按imdb_title_id字段降序排列,取前3条,数值相同的情况下保留原表中排序靠前的记录,完全匹配你的需求reset_index(drop=True):重置结果的行索引,和你给出的预期输出格式对齐
内容的提问来源于stack exchange,提问作者Ayush Gupta
相关产品推荐
相关产品推荐

