<p>接受古斯塔沃的回答并根据我的需要进行调整:</p>
<pre class="lang-py prettyprint-override"><code>def reshape_arr(a, close):
flag = True
while flag is not False:
array = a.sort_values().unique()
l = len(array)
flag = False
for i in range(l):
previous_item = next_item = None
if i > 0:
previous_item = array[i - 1]
if i < (l - 1):
next_item = array[i + 1]
if previous_item is not None:
if abs(array[i] - previous_item) < close:
average = (array[i] + previous_item) / 2
flag = True
#find matching values in a, and replace with the average
a.replace(previous_item, value=average, inplace=True)
a.replace(array[i], value=average, inplace=True)
if next_item is not None:
if abs(next_item - array[i]) < close:
flag = True
average = (array[i] + next_item) / 2
# find matching values in a, and replace with the average
a.replace(array[i], value=average, inplace=True)
a.replace(next_item, value=average, inplace=True)
return a
</code></pre>
<p>如果我做了这样的事情:</p>
<pre><code> candlesticks['support'] = reshape_arr(supres_df['support'], 150)
</code></pre>
<p>其中烛台是我正在使用的主数据帧,supres\u df是另一个数据帧,我在将其应用到主数据帧之前正在对其进行按摩。你知道吗</p>
<p>它可以工作,但是非常慢。我现在正在尝试优化它。你知道吗</p>
<p>我添加了一个while循环,因为在平均之后,平均值可以变得足够接近再次平均,所以我将再次循环,直到不再需要平均为止。这是完全新手的工作,所以如果你看到一些愚蠢的,请评论。你知道吗</p>