擅长:python、mysql、java
<>考虑直接调用函数,对方法进行轻微调整,使用{a1}(或<a href="https://numpy.org/doc/1.18/reference/generated/numpy.where.html" rel="nofollow noreferrer"><strong>^{<cd2>}</strong></a>)处理条件逻辑。使用这种方法,不运行循环,而是对级数和标量参数执行矢量化操作:</p>
<pre><code>def scoreFunHigh(dataField, mean, diff, multip):
conds = [dataField > mean * (1 + diff),
dataField < mean * (1 - diff)]
vals = [multip * 1, multip * (-1)]
return np.select(conds, vals, default=0)
letterMeanX = df.groupby('letters')['x'].transform(np.nanmean)
df['letter x score'] = scoreFunHigh(df['x'], letterMeanX, 0.2, 10)
letterMeanY = df.groupby('letters')['y'].transform(np.nanmean)
df['letter y score'] = scoreFunHigh(df['y'], letterMeanY, 0.3, 5)
</code></pre>