pandas 将数字转换为列表的相应元素
pandas converting numbers to corresponding elements of a list
假设我有一系列数字和一个列表:
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
有没有更惯用的方法来做到这一点?
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
)或系列或字典。
假设我有一系列数字和一个列表:
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
有没有更惯用的方法来做到这一点?
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
)或系列或字典。