擅长:python、mysql、java
<p>对于给定的dffinal行,在df2中选择行子集的逻辑可能很难避免迭代,但是使用此逻辑应该能够加快迭代方法的速度(希望可以加快很多)</p>
<p>(注意:如果您重复访问正在迭代的数据帧的行,请使用<code>.iterrows</code>,以便更简单(快速)地获取内容)</p>
<pre class="lang-py prettyprint-override"><code>for i,row in dffinal.iterrows():
och_array = df2.loc[(df3['och1'] >row['och1']) &\
(df2['och2'] >row['och2']) &\
(df2['och3'] >row['och3']) &\
(df2['cch1'] >row['cch1']),'och'].values
dffinal.at[i,'LCH'] = och_array.mean()
dffinal.at[i,'L#'] = len(och_array)
</code></pre>
<p>这避免了在dffinal中查找,避免了多次创建df的新副本。在没有数据样本的情况下无法进行测试,但我认为这会起作用</p>