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

如何用Python合并CSV多列生成单个数值?已尝试Pandas遇问题

解决CSV多列合并为单个数值的问题

根据你的需求,目标是将CSV每行的各列数值按顺序拼接成一个单独的整数(比如示例中每行的1、2、3、4合并为1234)。以下提供几种可行的实现方法:

一、Pandas正确实现(解决你之前的问题)

如果之前用Pandas出错,大概率是类型转换或拼接逻辑没处理好,试试下面的代码:

import pandas as pd

# 读取CSV文件
df = pd.read_csv("your_file.csv")

# 把所有列转成字符串,按行拼接后转成整数
df["合并结果"] = df.astype(str).agg("".join, axis=1).astype(int)

# 导出结果(可选)
df[["合并结果"]].to_csv("merged_result.csv", index=False)

如果数据里有缺失值,可以先填充(比如df = df.fillna(0))再执行拼接。

二、原生Python+csv模块(无需第三方库)

不想用Pandas的话,直接用Python内置的csv模块处理:

import csv

# 读取原文件并写入结果
with open("your_file.csv", "r", newline="") as infile, open("merged_result.csv", "w", newline="") as outfile:
    reader = csv.reader(infile)
    writer = csv.writer(outfile)
    # 写入结果表头
    writer.writerow(["合并结果"])
    # 跳过原文件的表头(如果没有表头就注释掉这行)
    next(reader)
    for row in reader:
        # 拼接每行元素并转成整数
        merged_num = int("".join(row))
        writer.writerow([merged_num])

三、命令行工具awk(适合Linux/macOS)

熟悉命令行的话,用awk可以快速完成:

# 无表头的情况,直接处理
awk -F ',' '{print int($1$2$3$4)}' your_file.csv > merged_result.csv

# 有表头的情况,跳过第一行
awk -F ',' 'NR>1{print int($1$2$3$4)}' your_file.csv > merged_result.csv

注意:$1$2$3$4对应CSV的第1到第4列,根据你的实际列数调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 23:55:26