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

如何在Python中按列合并多个CSV(.txt)文件?

解决方案:横向合并多个CSV格式的TXT文件

你之前用pd.append()得到行堆叠的结果,是因为这个方法本身就是用来纵向追加行的。要实现列并排的横向合并,应该用pd.concat()并指定axis=1参数。

具体步骤和代码:

  1. 先把所有读取后的DataFrame存入一个列表,再一次性合并,比循环里逐个合并效率更高。
  2. 使用pd.concat(..., axis=1)实现横向拼接。
  3. 可选:给每个文件的列加前缀(比如文件名),避免列名重复导致混乱。

代码示例:

import pandas as pd
import os

# 初始化空列表存储每个文件的DataFrame
df_list = []

# 遍历当前目录下的txt文件
for file in os.listdir(os.getcwd()):
    if file.endswith('.txt'):
        # 读取文件,保留你的原参数
        df = pd.read_csv(file, sep='\t', skiprows=[1])
        # 可选:给列名加上文件名前缀,避免重复
        df = df.add_prefix(f"{file.split('.')[0]}_")
        df_list.append(df)

# 横向合并所有DataFrame,axis=1表示按列拼接
master_df = pd.concat(df_list, axis=1)

# 保存结果到新的CSV文件
master_df.to_csv('merged_result.csv', index=False)

注意事项:

  • 如果你的每个文件的行数完全一致,合并后会完美对齐;如果行数不一致,缺失的位置会填充NaN,可根据需求进一步处理。
  • os.listdir()返回的文件顺序可能不稳定,如果需要按特定顺序合并(比如文件名排序),可以先对文件列表排序:sorted(os.listdir(os.getcwd()))。

内容的提问来源于stack exchange,提问作者Ahmed S. Razeen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 09:40:43