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

如何用Python pandas将分用户多文件夹存储的多份CSV数据集合并为单一文件

多文件夹多CSV合并Python解决方案

先确保你已经安装了pandas依赖,未安装可执行命令:pip install pandas

完整可运行代码

import pandas as pd
import os

# 按需修改下方配置参数
ROOT_DIR = "DataPaper"  # 存放所有用户文件夹的根路径
USER_TOTAL = 22  # 用户总数量
EXCLUDE_FILES = ["sleep.csv"]  # 不需要合并的CSV文件名
# 多表关联共同键,即所有特征表共有的字段,比如日期字段date,没有的话后续可替换为按行拼接
COMMON_KEY = "date"

# 自动获取所有需要合并的特征文件名
sample_user_dir = os.path.join(ROOT_DIR, "user_1")
feature_files = [f for f in os.listdir(sample_user_dir) if f.endswith(".csv") and f not in EXCLUDE_FILES]

all_user_data = []
# 遍历所有用户
for user_id in range(1, USER_TOTAL + 1):
    user_folder = os.path.join(ROOT_DIR, f"user_{user_id}")
    user_feature_dfs = []
    # 读取当前用户的所有特征CSV
    for feat_file in feature_files:
        # 适配你提到的`user_i.sleep.csv`命名规则
        file_path = os.path.join(user_folder, f"{user_id}.{feat_file}")
        df = pd.read_csv(file_path)
        user_feature_dfs.append(df)
    # 合并当前用户的所有特征表
    merged_user_df = user_feature_dfs[0]
    for df in user_feature_dfs[1:]:
        merged_user_df = merged_user_df.merge(df, on=COMMON_KEY, how="outer")
    # 新增用户标识列
    merged_user_df["user_id"] = user_id
    all_user_data.append(merged_user_df)

# 合并所有用户数据并导出
final_df = pd.concat(all_user_data, ignore_index=True)
final_df.to_csv("merged_full_dataset.csv", index=False, encoding="utf-8-sig")

适配调整说明

  • 如果你的各特征表没有共同的关联字段,可以把合并单用户特征的merge逻辑替换为merged_user_df = pd.concat(user_feature_dfs, axis=1),直接按行序号拼接
  • 若需要保留sleep.csv,直接将EXCLUDE_FILES设置为空列表[]即可
  • 用os.path.join拼接路径可自动适配Windows、Mac、Linux等不同系统的路径格式,不会出现斜杠方向错误

内容的提问来源于stack exchange,提问作者DYLAN NICO AMBROSI

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:45:05