You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Pandas技术问询:找出数据框中频率前三的姓名

使用Pandas找出DataFrame中出现频率前三的姓名

嘿,这有个简单高效的解决方案来搞定你的需求:

首先先还原你提供的示例DataFrame:

import pandas as pd

# 构造你给出的示例数据
data = {
    'Index': [1, 2, 3, 4, 5, 6, 7],
    'Name': ['Jack', 'Jack', 'Tom', 'Tom', 'Lucy', 'Lily', 'Lily']
}
df = pd.DataFrame(data)

接下来用几行代码就能得到你想要的结果:

# 统计姓名的出现频率,默认按频率降序排列
name_freq = df['Name'].value_counts()

# 将统计结果转换为标准DataFrame格式,并修改列名匹配预期
top_three = name_freq.head(3).reset_index()
top_three.columns = ['Name', 'Frequency']

# 输出最终结果
print(top_three)

运行后会得到和你预期完全一致的输出:

Name  Frequency
0   Jack          2
1    Tom          2
2   Lily          2

简单拆解下关键步骤:

  • value_counts() 是Pandas专门用来统计列值出现频率的工具,默认会自动按频率从高到低排序,省去了手动排序的麻烦。
  • head(3) 用来提取排名前三的记录,遇到像你例子里的并列情况时,它会自动包含所有进入前三梯队的条目。
  • reset_index() 把原本作为索引的姓名转成普通列,再通过columns属性修改列名,让结果格式完全贴合你的预期。

内容的提问来源于stack exchange,提问作者Jack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:03:33