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

在Pandas DataFrame中获取指定多列所有值的众数

在Pandas DataFrame中获取指定多列所有值的众数

嘿,我完全懂你的需求啦——你不是要单独计算每一列的众数,而是想把指定的几列里的所有值捏到一块儿,找出这个大集合里出现次数最多的那个值对吧?没问题,咱们一步步来搞定这个事儿。

首先得提一嘴,你的数据里C1_IND列名后面带了多余的空格,引用的时候得精准对应上,不然程序会找不到列哦。

核心思路

  1. 选对目标列:把你需要合并计算的列从DataFrame里挑出来
  2. 扁平化数据:把这些列的所有值合并成一个一维序列,让它们变成一个整体
  3. 计算众数:用工具库或者Pandas自带方法算出这个序列的众数

第一个示例的实现代码

import pandas as pd
import numpy as np
from scipy.stats import mode

# 你的原始数据
data = [
    {"col1":123,"C1_IND    ":"Rev","C2_IND":"Hold"},
    {"col1":456,"C1_IND    ":"Hold","C2_IND":"Rev"},
    {"col1":123,"C1_IND    ":"Hold","C2_IND":"Service"},
    {"col1":1236,"C1_IND    ":"Man","C2_IND":"Man"}
]

df = pd.DataFrame.from_dict(data)

# 指定要合并的目标列
target_cols = ["C1_IND    ", "C2_IND"]
# 把多列值扁平化合并成一维数组
combined_values = df[target_cols].values.flatten()
# 计算众数,keepdims=False让结果更简洁
result = mode(combined_values, keepdims=False)

print("合并后的所有值:", combined_values)
print("众数结果:", result)

运行后你会看到,合并后的所有值是['Rev' 'Hold' 'Hold' 'Rev' 'Hold' 'Service' 'Man' 'Man'],众数是'Hold'——它一共出现了3次,是出现次数最多的。

第二个示例的实现代码

换汤不换药,只需要把目标列换成C1_IND 和C3_IND就行:

import pandas as pd
import numpy as np
from scipy.stats import mode

# 第二个示例的原始数据
data = [
    {"col1":123,"C1_IND    ":"Rev","C2_IND":"Hold","C3_IND":"Hold"},
    {"col1":456,"C1_IND    ":"Hold","C2_IND":"Rev","C3_IND":"Rev"},
    {"col1":123,"C1_IND    ":"Hold","C2_IND":"Service","C3_IND":"Service"},
    {"col1":1236,"C1_IND    ":"Man","C2_IND":"Man","C3_IND":"Man"}
]

df = pd.DataFrame.from_dict(data)

# 指定目标列
target_cols = ["C1_IND    ", "C3_IND"]
# 扁平化合并数据
combined_values = df[target_cols].values.flatten()
# 计算众数
result = mode(combined_values, keepdims=False)

print("合并后的所有值:", combined_values)
print("众数结果:", result)

这里合并后的众数同样是'Hold',和预期一致。

不用scipy的替代方法

如果你不想额外引入scipy库,用Pandas自带的方法也能搞定:

# 用Pandas原生方法找众数
mode_value = df[target_cols].stack().value_counts().idxmax()
print("众数:", mode_value)

stack()会把列转为行索引,把所有值堆叠成一个Series;value_counts()统计每个值的出现次数;idxmax()直接取出次数最多的值,结果和之前完全一样。

备注:内容来源于stack exchange,提问作者pbh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 09:52:36