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

如何按行统计DataFrame某列中唯一值的出现次数?

解决方案

实现思路

  • 将values列的逗号分隔字符串拆分为数值列表
  • 逐行统计列表中0和1的出现次数,组合成指定格式的元组
  • 保留student number列并与统计结果关联,生成目标DataFrame

代码实现

import pandas as pd

# 替换为你的实际DataFrame
df = pd.DataFrame({
    'student number': [0, 1, 2, 3, 4],
    'values': ['0,0,...,0,1,...,1', '0,...,0,1,...,1', '0,...,0,1,...,1', '0,...,0,1,...,1', '0,...,0,1,...,1']
})

# 定义统计函数
def count_zero_one(row):
    # 拆分字符串并转为整数列表
    val_list = list(map(int, row['values'].split(',')))
    # 统计0和1的次数
    zero_count = val_list.count(0)
    one_count = val_list.count(1)
    return (zero_count, one_count)

# 生成统计结果列
df['vector'] = df.apply(count_zero_one, axis=1)

# 整理输出格式
result = df.rename(columns={'student number': 'student'})[['student', 'vector']]
print(result)

代码说明

  • split(','):将values列的字符串按逗号分割为字符串列表
  • map(int, ...):将列表中的字符串元素转换为整数类型
  • val_list.count(0)/val_list.count(1):分别统计0和1在当前行的出现次数
  • apply(..., axis=1):按行调用统计函数,生成每行的统计元组
  • 最后通过重命名和列筛选得到目标格式的结果

输出示例

student     vector
0        0  (15, 12)
1        1  (10, 11)
2        2   (8, 10)
3        3   (13, 6)
4        4   (9, 16)

内容的提问来源于stack exchange,提问作者Man.utd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:10:34