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

如何统计含逗号嵌套分隔的TSV文件中各单元格的元素数量

TSV文件逗号分隔单元格元素数量统计解决方案

现有代码问题说明

你的代码存在两个核心问题:

  • 每行所有单元格统计完成后没有输出换行符,导致所有行的统计结果拼接在同一行,丢失了原有的行结构
  • 第一列的分组名不需要统计元素数量,直接原样输出即可,原代码对所有字段都做了逗号拆分统计,不符合预期输出要求

修正后的纯Python实现

def main():
    name_of_table_file = 'file name here'  
    # 若文件有特定编码可修改encoding参数,比如gbk
    with open(name_of_table_file, 'rt', encoding='utf-8') as f:
        for line in f:
            line = line.rstrip('\n')
            # 按制表符拆分一级字段
            fields = line.split('\t')
            # 第一个字段是组名,直接加入输出列表
            output_cols = [fields[0]]
            # 遍历剩余单元格统计元素数量
            for cell in fields[1:]:
                output_cols.append(str(len(cell.split(','))))
            # 拼接整行输出,分隔符用空格,如需制表符可改为'\t'
            print(' '.join(output_cols))
           
if __name__ == "__main__":
    main()

Pandas实现(适合大数据量场景)

import pandas as pd

# 读取TSV文件,无表头,全部按字符串读取避免格式问题
df = pd.read_csv('file name here', sep='\t', header=None, dtype=str)
# 第一列保留为分组名
res = df.iloc[:, [0]].copy()
# 对剩余所有列统计逗号分隔的元素数量:n个逗号对应n+1个元素
for col in df.columns[1:]:
    res[col] = df[col].str.count(',') + 1
# 输出结果,分隔符用空格,不输出索引和表头
res.to_csv('output.txt', sep=' ', index=False, header=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:06:02