如何在Pandas多级索引DataFrame中映射星期几索引值
处理Pandas多级索引中day_of_week的映射
方法一:使用rename直接修改指定级别索引
这是最简洁的方式,通过level参数指定要修改的索引级别(可以用级别名称或位置,这里day_of_week是第二个级别,位置为1):
import pandas as pd # 定义数字到星期名称的映射字典 # 注意:如果你的day_of_week索引是字符串类型,键要改成对应的字符串(比如'0') day_map = { 0: 'Monday', 1: 'Tuesday', 2: 'Wednesday', 3: 'Thursday', 4: 'Friday', 5: 'Saturday', 6: 'Sunday' } # 针对day_of_week级别重命名索引 df = df.rename(index=day_map, level='day_of_week')
方法二:重新构造多级索引
如果需要更灵活的处理逻辑,可以先提取原索引的元组,处理后再重新设置索引:
# 遍历原索引的每个元组,替换day_of_week的值 new_index = [ (week_num, day_map[day_num]) for week_num, day_num in df.index ] # 用处理后的元组重新构造多级索引 df.index = pd.MultiIndex.from_tuples( new_index, names=['week_of_year', 'day_of_week'] )
验证修改结果
执行完上述操作后,可以通过以下命令确认修改是否生效:
# 查看修改后的day_of_week级别索引 print(df.index.get_level_values('day_of_week'))
内容的提问来源于stack exchange,提问作者Ross Dickinson
相关产品推荐
相关产品推荐

