擅长:python、mysql、java
<p>可以使用“mul”方法将列相乘。但是,如果您确实想使用apply,请记住以下几点:</p>
<p>apply函数将dataframe中的每个序列传递给函数。这个循环是apply函数固有的。因此,首先要说的是,函数中的循环是多余的。此外,它内部还有一个return语句,它会导致您不希望出现的行为。在</p>
<p>如果每个列都自动作为参数传递,则只需告诉函数将其乘以什么即可。在这个例子中,你的权重系列。在</p>
<p>下面是一个使用apply的实现。当然,这里不可取的是权重也会被自身乘以:</p>
<pre><code>df = pd.DataFrame({'1' : [1, 1, 0, 1],
'2' : [0, 0, 1, 0],
'weights' : [0.5, 0.25, 0.1, 0.05]})
def multiply_columns(column, weights):
return column * weights
df.apply(lambda x: multiply_columns(x, df['weights']))
</code></pre>