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

如何在Pandas中批量筛选多个DataFrame的指定行(time=0)以简化代码?

解决方法

这问题我之前也碰到过,重复写筛选代码确实烦!给你两个简洁的方案,看你需求选:

方案1:用字典统一管理(推荐)

把所有需要处理的DataFrame放进一个字典里,用字典推导式批量完成筛选,既整洁又方便后续复用:

# 先把原DataFrames存入字典,键对应原变量名
dfs = {'a': a, 'b': b, 'c': c, 'd': d, 'e': e}

# 批量筛选time=0的行,结果存在新字典里
base_dfs = {name: df[df['time'] == 0] for name, df in dfs.items()}

之后你可以通过base_dfs['a']、base_dfs['b']来访问处理后的结果,这种方式的好处是能把相关的DataFrame统一管理,后续如果还要做其他批量操作(比如合并、导出),直接遍历字典就行,不会让命名空间乱糟糟的。

方案2:自动生成单独变量(适合简单场景)

如果你还是希望得到a_base、b_base这类单独的变量,可以借助globals()来批量赋值,省去手动逐个定义的麻烦:

# 同样先把原DataFrames存入字典
dfs = {'a': a, 'b': b, 'c': c, 'd': d, 'e': e}

# 遍历字典,自动创建对应_base后缀的变量
for name, df in dfs.items():
    globals()[f"{name}_base"] = df[df['time'] == 0]

执行完这段代码后,你就能直接用a_base、b_base这些变量了,不过要注意:这种方式会直接修改全局命名空间,在复杂项目里可能引发变量名冲突,所以更适合简单的脚本或者Notebook场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 06:57:31