pandas将数字转换为列表的相应元素

时间:2015-01-13 19:21:36

标签: python pandas

假设我有一系列数字和一个清单:

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

是否有更惯用的方式来做到这一点?

1 个答案:

答案 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),或者系列或字典。