如何按标签统计出现次数?按列[0]唯一类别统计列[1]的0与1数量
针对标签数据的两个统计需求解决方案
1. 按标签(列[0])统计出现次数
直接用pandas的value_counts()方法就能快速统计列[0]中每个标签的出现频次,默认按频次从高到低排序:
# 统计列[0]的标签出现次数 label_counts = labels.iloc[:, 0].value_counts() print(label_counts)
如果需要保持标签本身的顺序(而非按频次排序),可以添加sort=False参数:
label_counts_sorted = labels.iloc[:, 0].value_counts(sort=False)
2. 按列[0]的唯一类别,统计列[1]中0和1的数量
提供两种简洁的实现方式:
方法一:groupby + value_counts
先按列[0]分组,再对每组的列[1]统计0和1的数量,最后转换为二维表格形式:
# 按列[0]分组,统计列[1]的0/1分布 grouped_counts = labels.groupby(0)[1].value_counts().unstack(fill_value=0) print(grouped_counts)
unstack()将分层结果展开为表格,fill_value=0用来填充未出现的类别组合,避免空值。
方法二:pd.crosstab
交叉表函数可直接生成列[0]与列[1]的频次统计矩阵,结果直观清晰:
# 生成交叉表统计0/1分布 cross_tab = pd.crosstab(labels.iloc[:, 0], labels.iloc[:, 1]) print(cross_tab)
输出结果中,行对应列[0]的每个类别,列对应0和1,单元格为对应组合的出现数量。
内容的提问来源于stack exchange,提问作者Sean_TBI_Research
相关产品推荐
相关产品推荐

