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

如何从DataFrame字典中提取键不含点号的独立DataFrame

批量提取字典中不含特定字符的DataFrame为独立变量

问题背景

现有一个存储DataFrame的字典df_dict,其键列表如下:

dict_keys(['df1.test', 'df2.test', 'df3.test','df1_test','df2_test','df3_test'])

需要将键名中不含.的DataFrame提取出来,生成对应名称的独立变量(如df1_test、df2_test),替代手动逐个赋值的繁琐操作。

原尝试代码的问题

你写的代码存在三个关键问题:

  1. str.contains是pandas Series的方法,普通字符串不能直接调用,判断字符是否存在用in关键字即可
  2. Python中否定判断用not,而非!
  3. 直接给循环变量key赋值无法创建全局/局部变量,需要通过命名空间动态创建

正确实现方式

方式1:动态创建全局变量

直接生成对应名称的独立DataFrame变量:

import pandas as pd

# 遍历字典键
for key in df_dict:
    # 筛选不含"."的键
    if '.' not in key:
        # 动态创建以键名为变量名的DataFrame
        globals()[key] = df_dict[key]

注:字典中的值已经是DataFrame,无需再次用pd.DataFrame()转换,直接赋值即可。

方式2:存入新字典管理(更安全规范)

如果担心全局变量污染,推荐将筛选后的DataFrame存入新字典,后续通过字典访问:

clean_dfs = {}
for key in df_dict:
    if '.' not in key:
        clean_dfs[key] = df_dict[key]

# 访问示例:clean_dfs['df1_test']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 05:47:22