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

如何根据PDB代码列表创建对应命名的空DataFrame?

问题

我有一组PDB代码:

proteins = ['1h1p', '1h1s', '1pmn', '1q41', '1u4d_a', '1u4d_b', '1unl', '2br1']

我想要为每个蛋白质初始化一个空的DataFrame,并以对应的PDB代码作为变量名,最终得到8个分别名为1h1p、1h1s、1pmn、1q41、1u4d_a、1u4d_b、1unl、2br1的空DataFrame。

注:我将DataFrame以列表形式展示仅为简化说明,并非必须以列表形式存储。

解决方案

方法1:直接创建全局变量

通过globals()字典可以直接在全局命名空间中生成对应名称的空DataFrame:

import pandas as pd

proteins = ['1h1p', '1h1s', '1pmn', '1q41', '1u4d_a', '1u4d_b', '1unl', '2br1']

for pdb_id in proteins:
    globals()[pdb_id] = pd.DataFrame()

执行后即可直接通过1h1p、1u4d_a等变量名访问对应空DataFrame。但这种方式会污染全局命名空间,若PDB代码包含Python关键字或特殊格式,可能引发潜在问题。

方法2:用字典存储(推荐)

更规范的方式是用字典统一管理这些DataFrame,既避免命名空间混乱,也方便后续批量操作:

import pandas as pd

proteins = ['1h1p', '1h1s', '1pmn', '1q41', '1u4d_a', '1u4d_b', '1unl', '2br1']

pdb_dataframes = {pdb_id: pd.DataFrame() for pdb_id in proteins}

后续可通过字典键访问目标DataFrame,例如pdb_dataframes['1u4d_a']。这种方式更易维护,批量处理所有DataFrame时直接遍历字典即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:10:33