熊猫:使用系列列表进行查找

时间:2015-10-22 19:09:47

标签: python list pandas series

我有一系列整数s和一个整数列表l。我想构建一个新的t系列t[i] == l[s[i]]pandas.Series有一个名为map的方法,可以为dict个对象执行此操作,这意味着这样的方法可以正常工作:

t = s.map({i: v for i, v in enumerate(l)})

但有更直接的方法吗?

1 个答案:

答案 0 :(得分:1)

由于你已经有了一个int列表,你可以从中构建一个Series并将其作为map的数据参数传递:

t = s.map(pd.Series(l))

我不知道你的系列s索引是否是随机值而你真的想要执行查找,如果是这样,那么你可以在构造系列时将值作为索引传递:

In [15]:
s = pd.Series(np.arange(4))
l = [0,4,7,9]
s

Out[15]:
0    0
1    1
2    2
3    3
dtype: int32

In [16]:    
s.map(pd.Series(index=s.values, data=l))

Out[16]:
0    0
1    4
2    7
3    9
dtype: int64