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

Pandas:如何获取列中出现次数等于N的目标数值

解决方法:获取DataFrame指定列中出现次数等于N的数值

问题背景

给定如下DataFrame:

import pandas as pd

df = pd.DataFrame({
    'a': [0, 1, 2],
    'b': [1, 2, 3],
    'c': [2, 3, 1],
    'd': [3, 0, 4],
    'e': [4, 4, 0]
})

需求:获取指定列中出现次数等于N的数值,例如:

  • 列"e"中出现2次的数值,结果应为[4]
  • 列"d"中出现1次的数值,结果应为[3,0,4]

当前使用df['e'].value_counts() == 2得到布尔值Series,希望直接获取对应为True的数值。

具体实现

可以通过以下步骤直接获取目标数值:

  1. 对指定列执行value_counts(),得到各数值的出现次数
  2. 筛选出次数等于N的行
  3. 提取这些行的索引(即目标数值),转为列表

示例代码

示例1:获取列"e"中出现2次的数值

n = 2
# 筛选次数等于n的数值,转成列表
result_e = df['e'].value_counts()[df['e'].value_counts() == n].index.tolist()
print(result_e)  # 输出: [4]

示例2:获取列"d"中出现1次的数值

n = 1
result_d = df['d'].value_counts()[df['d'].value_counts() == n].index.tolist()
print(result_d)  # 输出: [3, 0, 4]

简化写法

也可以把逻辑封装成一个函数,方便重复调用:

def get_values_by_count(df, col_name, n):
    count_series = df[col_name].value_counts()
    return count_series[count_series == n].index.tolist()

# 调用函数
print(get_values_by_count(df, 'e', 2))  # [4]
print(get_values_by_count(df, 'd', 1))  # [3, 0, 4]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 19:15:54