Python中如何访问名称包含冒号的DataFrame变量?
解决带特殊字符的DataFrame变量访问问题
问题原因
Python的标识符(变量名)不允许包含冒号:这类特殊字符,所以你通过globals()[f'data{i}']生成的data5091016:2这类变量,无法直接用变量名访问,必须通过其他方式获取。
方案1:改用字典存储(推荐)
不要把每个DataFrame存为单独的全局变量,而是用一个字典统一管理,无论prim_key包含什么特殊字符,都能正常通过键访问:
primkeys = list(data.prim_key.unique()) grouped = data.groupby(['prim_key']) # 创建字典存储所有分组后的DataFrame dfs = {} for i in primkeys: dfs[i] = grouped.get_group(i) # 访问示例:用prim_key作为键直接取值 target_df = dfs['5091016:2']
这种方式更规范,还能避免全局变量污染,后续遍历或管理所有分组DataFrame也更方便。
方案2:通过globals()字典直接获取
如果已经生成了这些全局变量,也可以直接通过globals()字典访问,把变量名以字符串形式传入即可:
# 直接从globals字典中取出目标变量 target_df = globals()['data5091016:2']
内容的提问来源于stack exchange,提问作者alperyildirim
相关产品推荐
相关产品推荐

