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

如何在Pandas中按行统计列中特定唯一值的数量?

Pandas按行统计特定值出现次数的实现思路

核心思路

针对每行的数值列(COL1至COL5),统计指定目标值的出现次数,将结果作为新列追加到原DataFrame中。

具体实现步骤

  1. 准备数据:创建或导入目标DataFrame
import pandas as pd

data = {
    'Species': ['SP1', 'SP2', 'SP3'],
    'COL1': ['0', '1-2', '0-1'],
    'COL2': ['0', '2', '1'],
    'COL3': ['0', '0', '2'],
    'COL4': ['1-2', '1', '0'],
    'COL5': ['0-1-2', '0', '1-2']
}
df = pd.DataFrame(data)
  1. 定义统计目标:列出需要统计的所有特定值
target_values = ['0', '1-2', '0-1-2', '1', '2']
  1. 逐行统计并对齐结果:
    通过apply遍历每行,用value_counts统计值出现次数,再用reindex确保所有目标值都有统计结果(缺失值填0)
count_df = df.drop('Species', axis=1).apply(
    lambda row: pd.Series(row.value_counts()).reindex(target_values, fill_value=0),
    axis=1
)
  1. 重命名统计列:给统计结果的列名加上count_前缀,匹配需求格式
count_df.columns = [f'count_{val}' for val in target_values]
  1. 合并结果:将统计列与原DataFrame横向拼接
result_df = pd.concat([df, count_df], axis=1)

最终结果

执行上述代码后,result_df会生成需求中的格式:

Species COL1 COL2 COL3 COL4    COL5  count_0  count_1-2  count_0-1-2  count_1  count_2
0     SP1    0    0    0  1-2  0-1-2        3          1            1        0        0
1     SP2  1-2    2    0    1       0        2          1            0        1        1
2     SP3  0-1    1    2    0    1-2        1          1            0        2        1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 19:05:24