如何获取DataFrame中Name列出现次数最多的前5个名称
嘿,要找出DataFrame里Name列出现次数最多的前5个名称?用pandas分分钟搞定!给你几个实用的方法:
方法1:用
value_counts()快速实现 这是最简洁高效的方式,pandas内置的value_counts()会自动按出现频次降序排列,直接取前5即可:
import pandas as pd # 假设你的DataFrame变量名为df top_5_names = df['Name'].value_counts().head(5) print(top_5_names)
这个方法一步到位,输出结果会直接显示每个名称及其对应的出现次数,完全贴合需求。
方法2:用
groupby() + sort_values()自定义处理 如果需要更灵活的排序逻辑或者后续扩展操作,可以用分组统计的方式:
# 方式一:用size()统计分组大小 top_5_names = df.groupby('Name').size().sort_values(ascending=False).head(5) # 方式二:用count()统计非空值数量(Name列无空值时和size()效果一致) top_5_names = df.groupby('Name')['Name'].count().sort_values(ascending=False).head(5)
可选:转换成规整的DataFrame格式
如果希望结果以带列名的DataFrame形式呈现(方便后续导出或进一步分析),可以重置索引并重命名列:
top_5_df = df['Name'].value_counts().head(5).reset_index() top_5_df.columns = ['Name', 'Occurrences'] # 自定义列名,更直观 print(top_5_df)
内容的提问来源于stack exchange,提问作者Rishindra
相关产品推荐
相关产品推荐

