根据df列中的数字替换numpy二维数组数字

时间:2019-03-24 10:56:13

标签: python arrays pandas numpy

我有一些数字的二维numpy数组,还有两列的df。我需要根据df中的旧标签对/新标签对替换2D数组中的所有数字。我该怎么办?

np.random.randint(15, size = (2,100))
df = pd.DataFrame({ 'old labels' : range(0,15 ,1),
    'new labels' : random.sample(range(0,15), 15)})

2 个答案:

答案 0 :(得分:0)

在给定的条件下

arr = np.random.randint(15, size = (2,100))
df = pd.DataFrame({ 'old labels' : range(0,15 ,1),
    'new labels' : random.sample(range(0,15), 15)})

假设我们只有两个维度。

d = df['new labels'].to_dict()
arr = np.array([d[x] for y in arr.tolist() for x in y]).reshape(arr.shape)

答案 1 :(得分:0)

这只是一个映射。使用numpy技巧和效率:

data= np.random.randint(15, size = (2,100))
map= df['new labels'].values
result = map[data]