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

如何在新Jupyter Notebook中复用旧分析的DataFrame,无需重复编写代码

嗨,这个需求太常见了!做数据分析的时候总不想重复跑一遍冗长的预处理代码,给你分享几个我日常用的靠谱方法,按需选就行:

方法1:用Pickle序列化保存(轻量快速)

这是我最常用的方式,适合小到中等规模的DataFrame,操作简单速度快。
在旧Notebook里,把需要复用的DataFrame存成pickle文件:

import pickle

# 假设你的目标DataFrame叫df_old
with open('my_reused_df.pkl', 'wb') as f:
    pickle.dump(df_old, f)

然后在新Notebook里直接加载:

import pickle

with open('my_reused_df.pkl', 'rb') as f:
    df_reused = pickle.load(f)

注意:Pickle是Python专属格式,没法跨语言读取,但胜在对Python对象的支持很完整,比如带索引、自定义类型的DataFrame都能完美保存。

方法2:用HDF5存储(适合大数据)

如果你的DataFrame特别大(比如几百万行以上),HDF5是更好的选择,它支持压缩,还能同时存储多个DataFrame。
旧Notebook里保存:

import pandas as pd

# 保存单个DataFrame,mode='w'会覆盖现有文件
df_old.to_hdf('my_data_store.h5', key='df_old', mode='w')

# 如果要存多个DataFrame,用追加模式mode='a'
# df_another.to_hdf('my_data_store.h5', key='df_another', mode='a')

新Notebook里加载指定的DataFrame:

import pandas as pd

df_reused = pd.read_hdf('my_data_store.h5', key='df_old')

方法3:用Jupyter魔法命令%store(同会话临时共享)

如果只是临时在同一个Jupyter会话里复用,不想存文件,可以用内置的%store魔法命令,直接在内存里共享对象:
在旧Notebook里执行:

%store df_old

切换到新Notebook,执行下面的代码就能加载:

%store -r df_old

注意:这个方法只在同一个Jupyter内核会话里有效,关闭内核后共享的对象就没了,适合临时快速复用的场景。

方法4:封装成Python模块(长期规范复用)

如果你的预处理逻辑需要长期复用,或者要和团队共享,把代码封装成模块是最规范的做法:

  1. 把旧Notebook里生成DataFrame的核心逻辑整理成函数,保存为data_utils.py文件:
import pandas as pd

def get_processed_dataframe():
    # 这里复制你旧Notebook里生成df_old的代码
    raw_df = pd.read_csv('raw_data.csv')
    # 数据清洗、转换等步骤...
    processed_df = raw_df.dropna().rename(columns={'old_name': 'new_name'})
    return processed_df
  1. 在新Notebook里直接导入调用:
from data_utils import get_processed_dataframe

df_reused = get_processed_dataframe()

这个方式的好处是代码可维护,后续修改预处理逻辑只需要改模块文件,所有用到的Notebook都会同步更新。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:03:34