我想从另外两个系列 s1
和 s2
构造一个系列 s3
,如下所示:
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
的索引以及由 s1
的值索引的 s2
的值>,即:
In [131]: s3
Out[131]:
1 y
2 y
3 z
dtype: object
到目前为止,我只需通过 s1
索引 s2
就可以接近:
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: cannot reindex from a duplicate axis.
最佳答案
使用map
系列
s1
by 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
与 map
相同来自 s2
的 dict
:
d = s2.to_dict()
print (d)
{'a': 'x', 'b': 'y', 'c': 'z'}
s3 = s1.map(d)
print (s3)
1 y
2 y
3 z
dtype: object
关于python - 通过系列 s1 索引系列 s2 并保留 s1 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37568830/