擅长:python、mysql、java
<p>在@root的帮助下,我发现解决这个问题最快的方法是:</p>
<pre><code>cs = train.groupby(by=['Cliente_ID'])['Demanda_uni_equil'].sum()
cc = train['Cliente_ID'].value_counts()
boolean = (cc == 1)
index = boolean[boolean == True].index.values
cc.loc[boolean] += 1
cs.loc[index] *= 2
train = train.join(cs.rename('sum'), on=['Cliente_ID'])
train = train.join(cc.rename('count'), on=['Cliente_ID'])
train['Cliente_IDloo'] = (train['sum'] - train['Demanda_uni_equil'])/(train['count'] - 1)
del train['sum'], train['count']
</code></pre>
<p>我发现,如果使用apply方法和可调用函数作为输入,则需要2分钟,而这种方法只需1秒,但有点麻烦。在</p>