Pandas 将这些值替换为另一个数组的索引

Pandas 将这些值替换为另一个数组的索引,pandas,Pandas,考虑一个数组 a = np.array([5, 12, 56, 36]) 和一个数据帧 b = pandas.DataFrame(np.array([1, 3, 0, 3, 1, 0, 2]) 如何使用b上的值作为a的索引来替换b上的值,即预期值为: c = pandas.DataFrame([12, 36, 5, 36, 12, 5, 56]) 无法完全理解这一点。一种方法是使用apply c = b.apply(lambda x: a[x]) 或者通过索引numpy数组并将值传递给

考虑一个数组

a = np.array([5, 12, 56, 36])
和一个数据帧

b = pandas.DataFrame(np.array([1, 3, 0, 3, 1, 0, 2]) 
如何使用
b
上的值作为
a
的索引来替换
b
上的值,即预期值为:

c = pandas.DataFrame([12, 36, 5, 36, 12, 5, 56])

无法完全理解这一点。

一种方法是使用apply

c = b.apply(lambda x: a[x])
或者通过索引numpy数组并将值传递给DataFrame

c = pd.DataFrame(a[b[0].values])


    0
0   12
1   36
2   5
3   36
4   12
5   5
6   56
地图可以使用

b.a.map({i:j for i,j in enumerate(a)})
0    12
1    36
2     5
3    36
4    12
5     5
6    56
Name: a, dtype: int64

让我们尝试不同的
系列。获取

pd.Series(a).get(b[0])
Out[57]: 
1    12
3    36
0     5
3    36
1    12
0     5
2    56
dtype: int32
pd.DataFrame(a[b.values])