擅长:python、mysql、java
<p>您还可以使用<code>pandas</code><a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.apply.html" rel="nofollow noreferrer">^{<cd2>}</a>函数:</p>
<pre class="lang-py prettyprint-override"><code>import math
from pandas_datareader import data as web
data = web.DataReader("goog", "yahoo")
data["lifetime"] = data["High"].asfreq("D").rolling(window=999999, min_periods=1).max()
data["isclose"] = data.apply(
lambda row: 1 if math.isclose(row["High"], row["lifetime"], rel_tol=0.003) else 0,
axis=1,
)
print(data)
</code></pre>
<hr/>
<p><strong>然而</strong>,<a href="https://stackoverflow.com/a/69579495/42659">yudhiesh's solution</a>使用<a href="https://numpy.org/doc/stable/reference/generated/numpy.where.html" rel="nofollow noreferrer">^{<cd3>}</a>更快。
另见:<a href="https://stackoverflow.com/questions/41166348/why-is-np-where-faster-than-pd-apply">Why is np.where faster than pd.apply</a></p>