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

如何用Pandas排序并合并同目录下的多份单栏非规范DataFrame至单个CSV

批量合并并规整单列CSV文件方案

实现步骤

  • 遍历目标目录下所有CSV文件
  • 读取每个文件的单列数据,以文件名(去除后缀)作为列名
  • 按索引对齐所有数据,空值自动填充NaN
  • 对列、行分别排序
  • 导出为最终规整CSV

代码实现

import pandas as pd
import os

# 替换为你的CSV文件所在目录路径
csv_directory = "./csv_files"
merged_result = pd.DataFrame()

# 遍历处理每个CSV文件
for file_name in os.listdir(csv_directory):
    if file_name.endswith(".csv"):
        full_path = os.path.join(csv_directory, file_name)
        try:
            # 读取单列数据,设置列名为文件名(去掉.csv后缀)
            single_col_df = pd.read_csv(full_path, header=None, names=[file_name[:-4]])
            # 横向合并数据,自动对齐行索引
            merged_result = pd.concat([merged_result, single_col_df], axis=1)
        except Exception as err:
            print(f"处理 {file_name} 失败: {err}")

# 按列名排序
merged_result = merged_result.sort_index(axis=1)
# 按行索引排序(若需按值排序,替换为 merged_result.sort_values(by="目标列名"))
merged_result = merged_result.sort_index(axis=0)

# 导出结果,不保留行索引,编码适配中文
merged_result.to_csv("./final_merged.csv", index=False, encoding="utf-8-sig")

自定义调整说明

  • 列命名规则:如果不需要用文件名作为列名,修改names=[file_name[:-4]]为自定义列名即可
  • 行排序规则:若要按某列的值排序,将行排序代码改为merged_result.sort_values(by="你要排序的列名", ascending=True)(ascending=False为降序)
  • 文件过滤:如果只想处理特定前缀/后缀的文件,修改if file_name.endswith(".csv")为更精准的判断,比如if file_name.startswith("data_") and file_name.endswith(".csv")
  • 编码适配:若导出CSV出现乱码,可将encoding="utf-8-sig"改为"gbk"或其他对应编码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 19:22:43