用于添加两个具有不同索引的pandas Series对象的惯用方法

时间:2014-03-05 18:14:42

标签: python pandas

我想添加两个系列对象:

s1 = Series([1,1], index=['a', 'b'])

s2 = Series([2.2], index=['x', 'y'])

当我添加它们时,我得到一个包含4个NaN值元素的系列,但我想要的是一个[s1.a + s2.x, s1.b + s2.y]的系列。这似乎应该是可能的,因为索引有一个排序。

我可以从pd.Series(s1.values + s2.values)得到我想要的东西,但是我想知道是否有一个函数已经以这种方式对Series对象进行操作并返回一个系列,而不是必须归结为numpy

1 个答案:

答案 0 :(得分:4)

取决于您对最终索引的要求:

In [20]:

s1+s2.values
Out[20]:
a    3
b    3
dtype: int64
In [21]:

s2+s1.values
Out[21]:
x    3
y    3
dtype: int64

甚至multiindex

In [22]:
s3=s2+s1.values
s3.index=pd.MultiIndex.from_tuples(zip(s1.index, s2.index))
s3
Out[22]:
a  x    3
b  y    3
dtype: int64