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

如何在Python中高效将CSV多行结构转为带重复标签的单行多列?

Python高效重构CSV文件结构的方法

要实现这种多行两列CSV转单行多列的结构,不用手动逐行迭代的话,优先用pandas或numpy这类基于向量/批量操作的库,它们底层用C实现,处理效率远高于纯Python循环,尤其适合大文件场景。

方法一:用pandas快速实现

pandas的API简洁,能一站式完成读取、转换、写入操作:

import pandas as pd

# 读取原空格分隔的CSV
df = pd.read_csv('input.csv', sep=' ', header=0)

# 生成重复的新表头:原表头重复原数据的行数
new_header = df.columns.tolist() * len(df)
# 把所有数据扁平化为一行
new_data = df.values.flatten().tolist()

# 构造新的DataFrame并保存
new_df = pd.DataFrame([new_data], columns=new_header)
new_df.to_csv('output.csv', sep=' ', index=False)

方法二:用numpy处理超大型文件

如果CSV文件体积特别大,numpy的IO操作内存效率更高:

import numpy as np

# 读取表头
with open('input.csv', 'r') as f:
    header = f.readline().strip().split()

# 批量读取数据(跳过表头行)
data = np.loadtxt('input.csv', skiprows=1)

# 构造新内容
new_header = header * data.shape[0]
new_data = data.flatten()

# 写入新文件
with open('output.csv', 'w') as f:
    f.write(' '.join(new_header) + '\n')
    f.write(' '.join(map(str, new_data)) + '\n')

这两种方式都不需要手动逐行遍历文件,依赖库的批量处理能力完成转换,在数据量越大时,效率优势越明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 20:55:59