通过系列s1索引系列s2并保持s1索引

时间:2016-06-01 12:36:48

标签: python dictionary pandas indexing

我想从另外两个系列s3s1构建一个系列s2,如下所示:

In [130]: s1
Out[130]: 
1    b
2    b
3    c
dtype: object

In [131]: s2
Out[131]: 
a    x
b    y
c    z
dtype: object

我希望s3的索引为s1,而值s2的索引值为s1,即:

In [131]: s3
Out[131]: 
1    y
2    y
3    z
dtype: object

到目前为止,我只需通过s2索引s1就可以了。

In [133]: s2.loc[s1]
Out[133]: 
b    y
b    y
c    z
dtype: object

但我无法弄清楚如何将索引重置回s1(它似乎不是reindex操作)。做:

pa.DataFrame(s2.loc[s1], index = s1.index)

也不起作用并给出:

  

ValueError:无法从重复的轴重新索引。

1 个答案:

答案 0 :(得分:2)

Series使用map s1 s2

import pandas as pd

s1 = pd.Series(['b','b','c'], index=[1,2,3])
s2 = pd.Series(['x','y','z'], index=['a','b','c'])

s3 = s1.map(s2)
print (s3)
1    y
2    y
3    z
dtype: object

与来自dict的{​​{1}}的{​​{3}}相同:

s2