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

如何用Python对CSV文件Code列分号左侧数值求和?

解决CSV中Code列分号左侧数值求和的问题

你的错误根源是直接删除分号后将整个字符串转为整数,这会把分号左右的数字拼接成一个数(比如19;90变成1990),正确做法是按分号拆分字符串,只提取左侧部分再转成整数计算。

方法一:用Python内置csv模块(无需额外安装)

适合新手理解基础文件读取逻辑:

import csv

total = 0
left_numbers = []

# 替换为你的CSV文件路径
with open('your_file.csv', 'r') as file:
    # 处理多空格分隔的CSV,过滤空列名
    reader = csv.DictReader(file, delimiter=' ')
    reader.fieldnames = [name for name in reader.fieldnames if name]
    
    for row in reader:
        # 拆分Code列,取分号左侧内容并转整数
        code_left = row['Code'].split(';')[0].strip()
        num = int(code_left)
        left_numbers.append(str(num))
        total += num

# 按期望格式输出
print(f"{' + '.join(left_numbers)} = {total}")

方法二:用pandas(更简洁,适合数据处理场景)

如果已安装pandas,代码会更紧凑:

import pandas as pd

# 读取多空格分隔的CSV
df = pd.read_csv('your_file.csv', delim_whitespace=True)
# 拆分Code列,提取左侧数值并转整数
df['code_left'] = df['Code'].str.split(';').str[0].astype(int)
# 计算总和并整理输出格式
total = df['code_left'].sum()
left_numbers = df['code_left'].astype(str).tolist()

print(f"{' + '.join(left_numbers)} = {total}")

运行任意一种代码,都会输出:19 + 20 + 30 = 69,符合你的预期。

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

相关产品推荐
方舟 Agent Plan

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

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