如何统计多列中每行相同数值的出现次数并生成新列?
统计每行多列中相同值的出现次数
我来帮你搞定这个需求!根据你的示例,我们需要给每行计算出该行所有列中出现次数最多的数值的出现次数,最终得到你要的D列结果。下面分两种常用工具给出实现方法:
Excel 实现方法
在Excel中,你可以用数组公式快速计算:
- 选中D1单元格,输入公式:
=MAX(COUNTIF(A1:C1,A1:C1)) - 旧版Excel需要按
Ctrl+Shift+Enter触发数组计算,新版Excel直接回车即可生效 - 下拉填充公式到所有行,就能得到预期的D列结果
公式解释:
COUNTIF(A1:C1,A1:C1)会针对A1:C1中的每个值,统计它在该行的出现次数,生成一个数组(比如第一行得到{2,2,1})MAX()函数取这个数组中的最大值,就是该行相同值的最高出现次数,正好对应你要的D列值
Python Pandas 实现方法
如果是用Python做数据分析,用Pandas可以轻松实现:
示例代码:
import pandas as pd # 构造你的示例数据表 df = pd.DataFrame({ 'A': [1, 2, 3, 3], 'B': [1, 1, 3, 2], 'C': [2, 2, 3, 1] }) # 计算D列:对每行统计值的出现次数,取最大值 df['D'] = df.apply(lambda row: row.value_counts().max(), axis=1) print(df)
代码解释:
df.apply(..., axis=1)表示对每一行执行指定操作row.value_counts()会统计当前行中每个数值的出现次数(比如第三行得到3:3).max()取统计结果中的最大值,就是我们需要的D列数值
运行这段代码后,输出的DataFrame就会包含你预期的D列:
A B C D 0 1 1 2 2 1 2 1 2 2 2 3 3 3 3 3 3 2 1 1
内容的提问来源于stack exchange,提问作者danche
相关产品推荐
相关产品推荐

