[英]Pandas Series.map equivalent in NumPy
我有一個查找值dictionary = {'a': 1, 'b': 2, 'c': 3, 'd': 3}
我希望從numpy獲得的結果是pandas.Series.map()
在傳入字典后返回的結果。 例如series.map(dictionary, na_action='ignore')
注意:此series.map()
函數非常快,這使我相信numpy API中必須有一個等效項,而不是我實現一些涉及numpy.where()
解決方案並循環瀏覽字典鍵。
這是一個NumPy-
def map_series_by_dict(s, d):
a = s.values
v = np.array(list(d.values()))
k = np.array(list(d.keys()))
sidx = k.argsort()
out_ar = v[sidx[np.searchsorted(k,a,sorter=sidx)]]
return pd.Series(out_ar, index=s.index)
樣品運行-
In [143]: d
Out[143]: {'a': 1, 'b': 2, 'c': 3, 'd': 3}
In [144]: s
Out[144]:
0 a
1 a
2 c
3 b
4 a
dtype: object
In [145]: map_series_by_dict(s, d)
Out[145]:
0 1
1 1
2 3
3 2
4 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.