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

如何在Python Pandas中按行统计HTML标签出现频次?

解决思路与实现代码

你可以通过以下两种高效的Pandas方法完成格式转换:

方法一:逐行统计标签频次并补全列

这种方法直接对每行(单个文件的标签数据)做频次统计,再统一补全所有88种标签的列,缺失项填充0:

import pandas as pd

# 假设原数据框为df,索引是文件名
# 获取所有唯一标签(若已知88种标签列表,可直接替换为自定义列表)
all_tags = df.stack().unique()

# 逐行统计标签出现次数,补全所有标签列并填充0
count_df = df.apply(
    lambda row: row.value_counts(), 
    axis=1
).reindex(all_tags, axis=1).fillna(0).astype(int)

方法二:宽表转窄表再透视统计

适合数据量较大的场景,先将宽表转换为窄表结构,再通过透视表统计频次:

import pandas as pd

# 转换为窄表:保留文件名、标签值,丢弃空标签
melted_df = df.reset_index().melt(
    id_vars='index', 
    value_name='tag'
).dropna(subset=['tag'])

# 透视统计每个文件的标签出现次数,缺失项填充0
count_df = melted_df.pivot_table(
    index='index', 
    columns='tag', 
    aggfunc='size', 
    fill_value=0
)
# 还原文件名为索引名
count_df.index.name = None

关键说明

  • 若原数据存在全空列,可先执行df = df.dropna(axis=1, how='all')清理,避免无效统计。
  • 若已知88种标签的精确列表,直接替换all_tags为该列表,能保证列的完整性与准确性。
  • 转换后的count_df可直接用于describe()、value_counts()等统计分析操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:46:12