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

如何在30余个DataFrame中仅保留指定的DF7?

仅保留指定DataFrame,删除其余的实用方案

嘿,这个需求我之前也碰到过——生成一堆临时DataFrame后,只想留一个有用的,清理环境还能节省内存。给你两个靠谱的办法,看哪个更适配你的场景:

方法1:手动指定要删除的变量(适合变量数量明确的情况)

如果已经清楚要删掉哪些DataFrame,直接用del命令批量处理就行,还能避免误删其他无关变量:

# 把所有要删除的DataFrame变量名列在这里
to_remove = ['DF1', 'XY2', 'WWQ3', 'PIUG4', 'AZZ5', 'TEST6', 'MBYRZ8', 'DF9', 'DF10']

# 遍历列表,存在的变量就删除
for var_name in to_remove:
    if var_name in locals():
        del locals()[var_name]

要是这些变量是全局作用域的(比如在脚本顶层定义的),把locals()换成globals()就行。

方法2:自动筛选保留目标DataFrame(适合大量变量的情况)

如果有30多个DataFrame,手动列出来太麻烦,可以自动识别所有DataFrame类型的变量,只保留DF7:

import pandas as pd

# 获取当前作用域的所有变量名
all_variable_names = list(locals().keys())

# 遍历变量,删除所有是DataFrame且不是DF7的对象
for name in all_variable_names:
    # 跳过目标变量,只处理其他DataFrame
    if name != 'DF7' and isinstance(locals()[name], pd.DataFrame):
        del locals()[name]

这个方法会自动过滤掉非DataFrame类型的变量(比如你的导入语句、自定义函数等),安全性更高。

额外小提示(IPython/Jupyter环境专属)

如果你用的是Jupyter Notebook或者IPython,可以用魔法命令快速清理:

%reset -f in DF1 XY2 WWQ3 PIUG4 AZZ5 TEST6 MBYRZ8 DF9 DF10

-f参数是强制删除,不会弹出确认提示;in后面跟着要删除的变量名列表就行。

最后可以用print([k for k, v in locals().items() if isinstance(v, pd.DataFrame)])检查一下,确认只有DF7留在环境里啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:05:05