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

如何用Pandas将BeautifulSoup抓取的HTML标签按首字母分列存入DataFrame

处理HTML标签列表的具体方案

1. 提取标签首字母并生成首字母分列表格

假设你已有的单列DataFrame名为tag_df,列名为tag,按以下步骤处理:

import pandas as pd

# 提取每个标签的首字母(统一转为大写,避免大小写差异)
tag_df['first_char'] = tag_df['tag'].str[1].str.upper()

# 按首字母分组,把同首字母的标签整理成列表
grouped_tags = tag_df.groupby('first_char')['tag'].agg(list).reset_index()

# 转换为宽格式表格:每列对应一个首字母,列内是该首字母的所有标签
wide_tag_df = grouped_tags.set_index('first_char').T

如果希望每列的标签按行排列(不足长度用空值填充),可以用这段代码:

# 找到标签数量最多的首字母组的长度
max_tag_num = grouped_tags['tag'].str.len().max()

# 把每个首字母的标签列表补全到最长长度,空位置用None填充
grouped_tags['tag'] = grouped_tags['tag'].apply(lambda x: x + [None]*(max_tag_num - len(x)))

# 转成每行对应一个标签位置、每列对应一个首字母的表格
wide_tag_df = grouped_tags.set_index('first_char')['tag'].apply(pd.Series).T

2. 首字母标签数量统计与柱状图

用matplotlib实现统计可视化:

import matplotlib.pyplot as plt

# 统计每个首字母对应的标签数量,按数量降序排列
tag_count = tag_df.groupby('first_char')['tag'].count().sort_values(ascending=False)

# 绘制柱状图
plt.figure(figsize=(12,6))
tag_count.plot(kind='bar', color='#2ca02c')
plt.title('HTML标签首字母分布统计')
plt.xlabel('首字母')
plt.ylabel标签数量')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

3. 数据清洗注意事项

  • 如果抓取的标签存在大小写混乱(比如<A>和<a>),先统一格式:tag_df['tag'] = tag_df['tag'].str.lower()
  • 若标签带属性(比如<a href="#">),先提取纯标签名:tag_df['tag'] = tag_df['tag'].str.extract(r'<(\w+)>').apply(lambda x: f'<{x[0]}>')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 03:31:02