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

如何将单级索引Pandas Series值与多级索引Series按二级索引匹配相加?

基于二级索引匹配实现单级与多级Series数值相加

要实现单级索引Series与多级索引Series基于二级索引的匹配相加,核心是让单级Series的标签与多级Series的**第二级索引(level=1)**对齐,再执行元素级加法。以下是两种简洁可行的方法:

方法1:利用map直接映射二级索引对应值

通过提取多级Series的二级索引,用单级Series映射得到对应数值后直接相加:

import pandas as pd

# 初始化数据
simple_index_series = pd.Series([1,2,3], index=['a', 'b', 'c'])
multi_index_series = pd.Series(
    0, 
    index = pd.MultiIndex.from_product([['foo', 'bar'], ['c', 'b', 'a']])
)

# 执行匹配相加
result = multi_index_series + multi_index_series.index.get_level_values(1).map(simple_index_series)
print(result)

输出结果:

foo  c    3
     b    2
     a    1
bar  c    3
     b    2
     a    1
dtype: int64

方法2:扩展单级Series索引后相加

先将单级Series按多级索引的二级索引重新索引,扩展为与多级Series相同的索引结构,再执行加法:

# 将单级Series按二级索引重新索引
expanded_simple = simple_index_series.reindex(multi_index_series.index.get_level_values(1))
# 重置索引为原多级索引
expanded_simple.index = multi_index_series.index
# 相加得到结果
result = multi_index_series + expanded_simple

两种方法最终结果一致,可根据个人习惯选择。

内容的提问来源于stack exchange,提问作者Ramón J Romero y Vigil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:25:01