如何向Multi-Index DataFrame指定层级下追加列表数据
向Multi-Index DataFrame指定层级追加行的实现方法
方法一:创建新DataFrame合并(推荐)
适合批量添加多行,逻辑清晰易维护:
- 准备要追加的数据和对应索引
import pandas as pd import numpy as np x = [16,17,18,19] # 生成对应"s"层级的新二级索引(6-9) new_index = pd.MultiIndex.from_tuples([("s", str(i)) for i in range(6, 10)]) # 创建包含新数据的DataFrame,I2列设为NaN new_rows = pd.DataFrame({"I1": x, "I2": np.nan}, index=new_index)
- 合并并排序索引
df_updated = pd.concat([df, new_rows]).sort_index()
sort_index()会自动将"s"层级的所有行集中排列,"c"层级行保持在后方,与目标结果一致。
方法二:通过.loc直接赋值添加
适合少量行的快速添加:
x = [16,17,18,19] # 从6开始遍历元素,逐个添加到"s"层级下 for idx, val in enumerate(x, start=6): df.loc[("s", str(idx)), "I1"] = val # 重新排序索引,让新行排在"s"层级原行之后 df.sort_index(inplace=True)
未赋值的I2列会自动填充为NaN,满足需求。
内容的提问来源于stack exchange,提问作者Asma Hekal
相关产品推荐
相关产品推荐

