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

如何用Python统计CSV文件中单个数字的数量

如何用Python统计CSV文件中单个数字的数量

嘿,我完全懂你遇到的麻烦!你要统计CSV里所有独立数字项的总数,但之前用csv模块搭配len和sum得到的结果完全不对——实际应该是942,却跑出了5328,这肯定是统计的对象搞错啦😅

先说说你之前可能踩的坑

你得到的5328看起来更像是所有数字的字符总长度(比如17795是5个字符,20223是5个字符,把这些加起来就会远大于实际的数字项数量)。而我们真正要统计的是每个逗号分隔出来的数字项的个数,不管这个数字是几位数。

解决方案来啦

这里给你两种靠谱的方法,按需选就行:

方法一:不用csv模块,直接逐行处理(简单直观)

如果你的CSV里没有复杂格式(比如带引号的内容),直接读文件拆分逗号就够了:

total_numbers = 0
# 把这里替换成你的CSV文件路径
with open('your_numbers.csv', 'r', encoding='utf-8') as f:
    for line in f:
        # 去掉行首尾的空白和换行符,按逗号拆分
        items = line.strip().split(',')
        # 过滤掉空字符串(比如行尾有多余逗号、空行的情况)
        valid_items = [item for item in items if item.strip()]
        total_numbers += len(valid_items)

print(f"总共有{total_numbers}个数字")

方法二:用csv模块处理(更规范,适配复杂场景)

如果你的CSV可能有特殊格式(比如偶尔出现带引号的字段),用官方的csv模块更稳妥:

import csv

total_numbers = 0
with open('your_numbers.csv', 'r', newline='', encoding='utf-8') as f:
    reader = csv.reader(f)
    for row in reader:
        # 同样过滤掉空的项,避免空行或无效内容干扰
        valid_items = [item for item in row if item.strip()]
        total_numbers += len(valid_items)

print(f"总共有{total_numbers}个数字")

为啥这两种方法能解决问题?

不管是直接拆分还是用csv.reader,核心都是统计每行里有效数字项的个数,再累加所有行的数量,而不是去数每个数字的字符长度,这样就能得到你想要的942啦!

备注:内容来源于stack exchange,提问作者mr potato guy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 07:04:32