假设我有一系列数字和一个清单:
s1 = pd.Series([0,1,2,5,4,1,0,2])
mylist = pd.Series(['apples','pears','bananas','oranges','lemons','limes'])
我想创建一个新系列,其中使用列表查找值。如果我mylist[s1]
值正确但指数错误:
>>> mylist[s1]
0 apples
1 pears
2 bananas
5 limes
4 lemons
1 pears
0 apples
2 bananas
dtype: object
我可以这样做以获得正确的答案,但这似乎很麻烦:
>>> pd.Series(mylist[s1].values, index=s1.index)
0 apples
1 pears
2 bananas
3 limes
4 lemons
5 pears
6 apples
7 bananas
dtype: object
是否有更惯用的方式来做到这一点?
答案 0 :(得分:2)
In [177]: s1.map(mylist)
Out[177]:
0 apples
1 pears
2 bananas
3 limes
4 lemons
5 pears
6 apples
7 bananas
dtype: object
Series.map
非常通用 - 不仅可以接受序列,还可以使用可调用的内容(如内置的Python,map
),或者系列或字典。