将值从一个数组映射到另一个数组

时间:2018-09-26 16:32:48

标签: python-3.x

我有一个数组arr1,它是长度为1000的pd.Series数组,其中某些值是重复的。我想将arr1中的每个唯一值映射到np数组arr2中的新值。我只知道如何使用for循环:

import numpy as np
import pandas as pd
arr1 = pd.Series(np.random.choice(1000,1000, replace=True))
arr1_unq = arr1.drop_duplicates()

arr2 = np.random.choice(1000,len(arr1_unq), replace=False)
arr2_unq = np.unique(arr2)
for i in range(len(arr2)):
    arr1[arr1==arr1_unq.iloc[i]]=arr2[i]

如何在不使用for循环的情况下更有效地做到这一点?

1 个答案:

答案 0 :(得分:0)

pandas.Series.map应该这样做

mapping = dict(zip(arr1_unq, arr2_unq))
arr1.map(maping)