如何在pandas中计算多列的行级众数(横向模式)
计算Pandas数据框每行的众数
输入数据示例
| Column A | Column B | Column C | Column D |
|---|---|---|---|
| cat | cat | cat | dog |
| dog | dog | cat | dog |
| bird | cat | cat | dog |
| bird | bird | cat | dog |
实现代码
首先构建示例数据:
import pandas as pd data = { 'Column A': ['cat', 'dog', 'bird', 'bird'], 'Column B': ['cat', 'dog', 'cat', 'bird'], 'Column C': ['cat', 'cat', 'cat', 'cat'], 'Column D': ['dog', 'dog', 'dog', 'dog'] } df = pd.DataFrame(data)
然后添加每行的众数列:
# 按行计算众数,取第一个众数(兼容多众数场景) df['Mode'] = df.apply(lambda row: row.mode()[0], axis=1)
输出结果
| Column A | Column B | Column C | Column D | Mode |
|---|---|---|---|---|
| cat | cat | cat | dog | cat |
| dog | dog | cat | dog | dog |
| bird | cat | cat | dog | cat |
| bird | bird | cat | dog | bird |
关键说明
axis=1参数指定按行执行计算,默认axis=0是按列统计row.mode()返回该行的众数结果,若存在多个众数会返回一组值,[0]用于提取第一个众数以输出单个值- 如果业务需要保留所有众数,可去掉
[0],此时Mode列会存储列表类型的结果
内容的提问来源于stack exchange,提问作者Aadhil Imam
相关产品推荐
相关产品推荐

