如何向MultiIndex第0级下方的单元格写入内容
解决方案
要实现这个需求,你可以直接修改MultiIndex的对应层级元素,步骤如下:
- 获取当前DataFrame的索引并转为可修改的列表格式
- 修改目标位置的第一级索引值
- 用修改后的列表重新构建MultiIndex并赋值回DataFrame
具体代码实现:
import numpy as np import pandas as pd # 原代码构建带MultiIndex的DataFrame nums = np.arange(5) key = ['kfc'] * 5 mi = pd.MultiIndex.from_arrays([key, nums]) df = pd.DataFrame({'rent': np.arange(10,60,10)}, index=mi) # 修改指定位置的第一级索引 # 定位到第二级为1的行,把第一级索引改为'NYC' new_index = df.index.to_list() new_index[1] = ('NYC', 1) df.index = pd.MultiIndex.from_tuples(new_index) print(df)
运行后输出的结果就是你想要的样式:
rent kfc 0 10 NYC 1 20 2 30 3 40 4 50
补充说明
- 如果需要批量修改多个行的第一级索引,只需循环或批量修改
new_index列表中的对应元组即可 - Pandas的MultiIndex本质是元组的集合,通过修改元组再重新构建索引是最直接的操作方式
内容的提问来源于stack exchange,提问作者meg hidey
相关产品推荐
相关产品推荐

