title: np.where() equivalent to df.loc()
body: <p>I am just practicing\learning pandas, and I am using the Pokemon dataset
  from Kaggle.</p>
  
  <p>The following two lines of code work fine, and produce the exact same result:</p>
  
  <pre><code>df.loc[df['Type 1'] == 'Fire', 'Type 1'] = 'Flamer'
  
  df['Type 1'] = np.where(df['Type 1'] == 'Fire', 'Flamer', df['Type 1'])
  </code></pre>
  
  <p>Both replace the value 'Fire' in the column 'Type 1' with 'Flamer'.</p>
  
  <p>However, I am trying to replicate that same behavior over multiple columns.
  In the following two lines of code, the first one works, the second fails.
  Exact error is also supplied:</p>
  
  <pre><code>df.loc[df['Total'] &gt; 500, ['Generation', 'Legendary']] = 'TEST VALUE'
  
  df[['Generation', 'Legendary']] = np.where(df['Total'] &gt; 500, 'TEST VALUE', df[['Generation', 'Legendary']])
  </code></pre>
  
  <pre><code>Traceback (most recent call last):
    File "C:/Users/Mark/PycharmProjects/main/main.py", line 152, in &lt;module&gt;
      df[['Generation', 'Legendary']] = np.where(df['Total'] &gt; 500, 'TEST VALUE', df[['Generation', 'Legendary']])
  ValueError: operands could not be broadcast together with shapes (800,) () (800,2)
  </code></pre>
  
  <p>I do not understand what that error is trying to tell me.</p>
  
  <p>Can I not replicate:  df.loc[df['Total'] > 500, ['Generation', 'Legendary']] = 'TEST VALUE'  using np.where()?</p>