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

Python如何创建行和列均带双层索引的Pandas DataFrame

Pandas 行列双层索引DataFrame实现方案

前提假设:你已计算得到N*N的原子间距离矩阵dist_matrix,已有的单层索引原子符号列表为atom_symbols,或者已经生成了单层原子符号索引的DataFrame对象single_index_df

  • 方式1:基于距离矩阵直接生成双层索引DataFrame
import pandas as pd

# 生成与原子符号一一对应的数字序号序列
num_index = list(range(len(atom_symbols)))
# 构造双层MultiIndex:第一层为数字序号,第二层为原子符号
multi_idx = pd.MultiIndex.from_arrays(
    [num_index, atom_symbols],
    names=["序号", "原子符号"] # 可自定义索引层名称,无需可删除该参数
)
# 行、列均使用上述双层索引创建DataFrame
df = pd.DataFrame(
    dist_matrix,
    index=multi_idx,
    columns=multi_idx
)

如果存在重复原子符号也无需担心,第一层唯一的数字序号会避免索引冲突问题

  • 方式2:对已有单层索引DataFrame直接修改索引
    如果你已经生成了仅以原子符号为索引的DataFrame,可以直接替换原有索引,无需复用原始距离矩阵:
df = single_index_df.copy()
num_index = list(range(len(df)))
# 替换行索引为双层结构
df.index = pd.MultiIndex.from_arrays([num_index, df.index], names=["序号", "原子符号"])
# 替换列索引为双层结构
df.columns = pd.MultiIndex.from_arrays([num_index, df.columns], names=["序号", "原子符号"])

内容的提问来源于stack exchange,提问作者Another.Chemist

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 14:00:03