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

如何获取Pandas Series中出现频率最低的值

获取Pandas Series中出现频率最低的值

你已经用win.mode()[0]搞定了最常见值,那找最不常见的其实可以用value_counts()结合idxmin()来实现,思路很直接:

  • 首先用value_counts()统计每个值的出现频率,这个方法默认会按频率从高到低排序,返回的Series里索引是原序列的唯一值,值是对应的出现次数。
  • 然后调用idxmin(),它会返回频率最小的那个索引(也就是原Series里的目标值),如果有多个值频率相同且都是最低的,它会返回第一个遇到的,正好符合你“任意打破平局”的要求。

完整代码示例

import pandas as pd

# 你的示例序列
win = pd.Series([0,1,2,2,2,0,0,2,2,0])

# 获取最常见值(你已经实现的部分)
most_common = win.mode()[0]

# 获取最不常见值
frequency_counts = win.value_counts()
least_common = frequency_counts.idxmin()

print(f"出现频率最高的值: {most_common}")  # 输出 2
print(f"出现频率最低的值: {least_common}")  # 输出 1

额外说明

如果之后你需要获取所有出现频率最低的值(而不是只取一个),可以这样写:

min_freq = frequency_counts.min()
all_least_common = frequency_counts[frequency_counts == min_freq].index.tolist()

比如如果序列是[0,0,1,1,2],这个代码会返回[2];如果是[0,0,1,1],会返回[0,1]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:44:31