title: Assigning values to Pandas Multiindex DataFrame by index level
body: <p>I have a Pandas multiindex dataframe and I need to assign values to one of the columns from a series. The series shares its index with the first level of the index of the dataframe.</p>
  
  <pre><code>import pandas as pd
  import numpy as np
  idx0 = np.array(['bar', 'bar', 'bar', 'baz', 'foo', 'foo'])
  idx1 = np.array(['one', 'two', 'three', 'one', 'one', 'two'])
  df = pd.DataFrame(index = [idx0, idx1], columns = ['A', 'B'])
  s = pd.Series([True, False, True],index = np.unique(idx0))
  print df
  print s
  </code></pre>
  
  <p>out:</p>
  
  <pre><code>             A    B
  bar one    NaN  NaN
      two    NaN  NaN
      three  NaN  NaN
  baz one    NaN  NaN
  foo one    NaN  NaN
      two    NaN  NaN
  
  bar     True
  baz    False
  foo     True
  dtype: bool
  </code></pre>
  
  <p>These don't work:</p>
  
  <pre><code>df.A = s # does not raise an error, but does nothing
  df.loc[s.index,'A'] = s # raises an error
  </code></pre>
  
  <p>expected output:</p>
  
  <pre><code>             A     B
  bar one    True   NaN
      two    True   NaN
      three  True   NaN
  baz one    False  NaN
  foo one    True   NaN
      two    True   NaN
  </code></pre>