我有一个数组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循环的情况下更有效地做到这一点?
答案 0 :(得分:0)
pandas.Series.map
应该这样做
mapping = dict(zip(arr1_unq, arr2_unq))
arr1.map(maping)