<p>C中的第二个数组(array([0,7,2,5,3,6,1,3,3,0,8,5,4,6])给出了要在ds1中替换的值的位置。在</p>
<p>所以必须替换ds1中的值。值.ravel()第一个C数组的索引,ds2中的值,第二个C数组的索引</p>
<p>下面是为小示例提供正确输出的代码:</p>
<pre><code>import pandas as pd
import numpy as np
ds1 = [[ 4, 13, 6, 9],
[ 7, 12, 5, 7],
[ 7, 0, 4, 22],
[ 9, 8, 12, 0]]
ds2 = [[ 4, 1],
[ 5, 3],
[ 6, 1],
[ 7, 2],
[ 8, 2],
[ 9, 3],
[12, 1],
[13, 2],
[22, 3]]
ds1= pd.DataFrame(ds1)
ds2= pd.DataFrame(ds2)
C = np.where(ds1.values.ravel()[:, None] == ds2.values[:, 0])
ds1_new = ds1.values.ravel()
ds1_new[C[0]]=ds2.values[C[1], 1]
ds1_new = ds1_new.reshape(4,4)
print(ds1_new)
ds1 = pd.read_table('https://gist.githubusercontent.com/karimkhanp/9527bad750fbe75e072c/raw/ds1', sep=' ', header=None)
ds2 = pd.read_table('https://gist.githubusercontent.com/karimkhanp/1692f1f76718c35e939f/raw/6f6b348ab0879b702e1c3c5e362e9d2062e9e9bc/ds2', header=None, sep=' ')
C = np.where(ds1.values.ravel()[:, None] == ds2.values[:, 0])
ds1_new = ds1.values.ravel()
ds1_new[C[0]]=ds2.values[C[1], 1]
ds1_new = ds1_new.reshape(1000,1001)
print(ds1_new)
</code></pre>
<p>给出以下输出:</p>
^{pr2}$