title: In Pandas, does .where(cond, other) compute _other_ regardless of _cond_?
body: <p>I have a DataFrame with values which may or may not be normalized.</p>
  
  <pre><code>+---+------------+
  | x | normalized |
  +---+------------+
  | 1 | True       |
  +---+------------+
  | 2 | True       |
  +---+------------+
  | 3 | False      |
  +---+------------+
  | 4 | True       |
  +---+------------+
  | 5 | False      |
  +---+------------+
  </code></pre>
  
  <p>My current way of normalizing all <code>x</code> is</p>
  
  <pre><code>df.x = df.x.where(df.normalized, normalize)
  </code></pre>
  
  <p><code>normalize</code> is a function and may take significant amounts of time, so i was wondering if <code>normalize</code> gets called on every value of <code>x</code> whether or not <code>normalized</code> is True. I suspect yes based on <code>pandas/core/generic.py</code>.</p>
  
  <p>If it is, is a better way to <code>apply(lambda ...)</code> or use <code>for row in df.iterrows(): ...</code>?</p>