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

Python合并Pickle文件问题:DataFrame合并后得到列表类型

解决Pickle文件合并为单一DataFrame的问题

你的代码当前只是将所有DataFrame收集到一个列表中,最后序列化保存的是这个列表,所以结果类型是List。要得到单一的DataFrame格式文件,需要用pandas的pd.concat()方法将列表中的DataFrame合并为一个整体。

修正后的代码

import os
import pickle
import pandas as pd

def combine_pickle_files(directory_path, output_file):
    df_list = []
    for filename in os.listdir(directory_path):
        if filename.endswith('.pkl'):
            file_path = os.path.join(directory_path, filename)
            with open(file_path, 'rb') as f:
                df = pickle.load(f)
                # 可选校验:确保加载的内容是DataFrame,避免非目标文件报错
                if isinstance(df, pd.DataFrame):
                    df_list.append(df)
    # 合并所有DataFrame,按行拼接并重置索引
    combined_df = pd.concat(df_list, ignore_index=True)
    # 保存合并后的单一DataFrame
    with open(output_file, 'wb') as out:
        pickle.dump(combined_df, out, protocol=pickle.HIGHEST_PROTOCOL)

# 调用示例
combine_pickle_files('/home/dataset/', '/home/dataset/result.pkl')

关键说明

  • pd.concat()默认按行合并(axis=0),如果需要按列合并可指定axis=1,一般场景下用行合并即可
  • ignore_index=True会重置合并后DataFrame的索引,避免原各DataFrame的索引重复导致的混乱
  • 新增的类型校验可以过滤掉意外混入的非DataFrame格式Pickle文件,提升代码健壮性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:05:15