如何在pandas中统计DataFrame指定列各值的出现频次
你可以通过pandas内置的统计方法快速实现需求,假设你的原DataFrame命名为df,以下是两种常用实现方案:
方案1:使用value_counts()方法(推荐)
value_counts()是Series类内置的频次统计方法,统计完成后调整格式即可:
import pandas as pd # 统计频次并重命名列 result = df["ID_numbers"].value_counts().reset_index() result.columns = ["ID_numbers", "count"] # 按ID_numbers降序排列,和你给出的预期输出顺序一致 result = result.sort_values(by="ID_numbers", ascending=False, ignore_index=True)
如果不需要按ID数值降序,只需要按计数高低排序,可以去掉最后一行的排序语句。
方案2:使用groupby分组统计
也可以通过分组聚合的方式实现同样效果:
result = df.groupby("ID_numbers", as_index=False).size() result = result.rename(columns={"size": "count"}).sort_values(by="ID_numbers", ascending=False, ignore_index=True)
两种方法输出的结果完全一致,都能得到你需要的统计DataFrame。
内容的提问来源于stack exchange,提问作者Iacopo Passeri
相关产品推荐
相关产品推荐

