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

如何使用Pandas统计USAS语义标签按指定前缀规则的出现次数

代码修改方案

补全缺失的依赖导入,再新增标签截断逻辑即可,修改后的完整代码如下:

import re
import os # 原代码遗漏了os模块导入,调用os.stat必须引入
import pandas as pd
import pandas.io.common
from pprint import pprint
import glob

# 定义标签格式化函数,按照需求截断标签
def format_sem_tag(tag):
    tag_str = str(tag)
    # 按小数点分割,最多切2次,得到最多3个片段
    parts = tag_str.split('.', 2)
    # 如果分割后至少有2个片段,说明存在小数点,取前2个拼接即可
    if len(parts) >= 2:
        return f"{parts[0]}.{parts[1]}"
    # 没有小数点的标签直接返回原始值
    return tag_str

files = glob.glob("/[folder name]/**/*.txt", recursive = True)

files = list(filter(lambda file: os.stat(file).st_size > 0, files))

for file in files:
    data = pd.read_csv(file, engine='python', encoding='utf-8', on_bad_lines='skip', header=None, usecols=[1], sep=' ')
    # 先对标签列做格式化处理
    data['formatted_tag'] = data[1].apply(format_sem_tag)
    # 统计格式化后的标签出现次数并导出
    data['formatted_tag'].value_counts().reset_index().to_csv(f"{file}_totals.txt", index=False, encoding='utf-8')

核心修改说明

  • 补充了os模块导入,解决原代码调用os.stat会报错的问题
  • 新增format_sem_tag函数,通过分割小数点的方式提取标签中第一个小数点及前后的有效部分,完全匹配你给出的聚合规则要求
  • 把原代码里的error_bad_lines替换为on_bad_lines='skip',适配更高版本Pandas的API规范
  • 统计前先对原始标签做格式化,再计数导出,结果符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 05:39:04