<p>一种方法是使用<a href="https://numpy.org/doc/stable/reference/arrays.indexing.html#advanced-indexing" rel="nofollow noreferrer">numpy advanced indexing</a>:</p>
<pre><code>import numpy as np
# extract columns 1,2,3 into a numpy array with a zeros column stacked on the left
vals = np.column_stack((np.zeros(len(df)), df[list('123')]))
vals
array([[ 0. , 34. , 5.18, 19.1 ],
[ 0. , 34. , 5.18, 19.1 ],
[ 0. , 34. , 5.18, 19.1 ],
[ 0. , 34. , 5.18, 19.1 ],
[ 0. , 34. , 5.18, 19.1 ],
[ 0. , 34. , 5.18, 19.1 ]])
# use TGR1 values as the column index to extract corresponding values
df['BB'] = vals[np.arange(len(df)), df.TGR1.values]
df
Dist Track EVENT_ID Date 1 2 3 TGR1 TGR2 BB
0 311m Cran 174331755 2020-10-19 34.0 5.18 19.1 1 0 34.00
1 311m Cran 174331755 2020-10-19 34.0 5.18 19.1 2 1 5.18
2 311m Cran 174331755 2020-10-19 34.0 5.18 19.1 0 2 0.00
3 311m Cran 174331755 2020-10-19 34.0 5.18 19.1 3 1 19.10
4 311m Cran 174331755 2020-10-19 34.0 5.18 19.1 2 2 5.18
5 311m Cran 174331755 2020-10-19 34.0 5.18 19.1 1 2 34.00
</code></pre>