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

如何在循环中保存修改后的DataFrame以实现多数据集合并

合并多数据集并统一时间列的实现方案

核心思路

  • 遍历目标文件夹中的所有待合并文件,逐个读取为DataFrame
  • 识别每个数据集中包含"time"的列,统一重命名为time作为合并主键
  • 将修改后的数据集暂存到列表中,循环结束后一次性合并为完整数据集

完善后的代码

import pandas as pd
import os

# 假设files_to_merge是待合并的文件名列表,folder是目标文件夹路径
complete_list = []
for file in files_to_merge:
    # 读取单个数据集
    df_original = pd.read_csv(os.path.join(folder, file))
    # 筛选所有含"time"的列(需不区分大小写可改成'time' in col.lower())
    time_cols = [col for col in df_original.columns if 'time' in col]
    if time_cols:
        # 取第一个含time的列重命名为"time"
        df_original.rename(columns={time_cols[0]: "time"}, inplace=True)
        # 将修改后的数据集加入列表,避免被下一次循环覆盖
        complete_list.append(df_original)
    else:
        print(f"警告:文件{file}中未找到含'time'的列,已跳过该文件")

# 合并所有修改后的数据集
merged_df = pd.concat(complete_list, ignore_index=True)
# 可选:将合并结果保存为新文件
merged_df.to_csv(os.path.join(folder, "merged_dataset.csv"), index=False)

关键细节说明

  • 用os.path.join拼接文件路径,避免因操作系统差异导致的路径错误
  • 加入异常判断:若某文件无含"time"的列,会打印警告并跳过,防止代码中断
  • 每次处理完数据集就追加到列表,确保修改后的结果被留存,不会被下一次循环的df_original覆盖
  • 最后用pd.concat合并所有DataFrame,ignore_index=True重置合并后的索引,避免索引重复

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 07:52:59