data_frame.xs() with MultiIndex throws exception when explicitly setting level= to the first level
I have the following DataFrame:

```
market_caps
```

> <class 'pandas.core.frame.DataFrame'>
> MultiIndex: 409938 entries, (20111230, '00036110') to (20121019, 'Y8564W10')
> Data columns:
> market_cap    409938  non-null values
> dtypes: float64(1)

```
market_caps.index.names
```

> ['date', 'security_id']

I want to get a cross-section by date. The following works just fine, implicitly slicing on the first level of the MultiIndex:

```
market_caps.xs(20111230)
```

> <class 'pandas.core.frame.DataFrame'>
> Index: 1993 entries, 00036110 to Y8564W10
> Data columns:
> market_cap    1993  non-null values
> dtypes: float64(1)

However, if I try to explicitly declare the first level, I get an exception:

```
market_caps.xs(20111230, level='date')
```

> ---
> 
> Exception                                 Traceback (most recent call last)
> <ipython-input-60-c2c77fa1057f> in <module>()
> ----> 1 market_caps.xs(20111230, level='date')
> 
> C:\Python27\lib\site-packages\pandas\core\frame.pyc in xs(self, key, axis, level, copy)
>    1983 
>    1984             result = self.ix[indexer]
> -> 1985             setattr(result, result._get_axis_name(axis), new_ax)
>    1986             return result
>    1987 
> 
> C:\Python27\lib\site-packages\pandas\core\frame.pyc in **setattr**(self, name, value)
>    1780                 existing = getattr(self, name)
>    1781                 if isinstance(existing, Index):
> -> 1782                     super(DataFrame, self).**setattr**(name, value)
>    1783                 elif name in self.columns:
>    1784                     self[name] = value
> 
> C:\Python27\lib\site-packages\pandas\lib.pyd in pandas.lib.AxisProperty.**set** (pandas\src\tseries.c:97451)()
> 
> C:\Python27\lib\site-packages\pandas\core\generic.pyc in _set_axis(self, axis, labels)
>     461 
>     462     def _set_axis(self, axis, labels):
> --> 463         self._data.set_axis(axis, labels)
>     464         self._clear_item_cache()
>     465 
> 
> C:\Python27\lib\site-packages\pandas\core\internals.pyc in set_axis(self, axis, value)
>     516         if len(value) != len(cur_axis):
>     517             raise Exception('Length mismatch (%d vs %d)'
> --> 518                             % (len(value), len(cur_axis)))
>     519         self.axes[axis] = _ensure_index(value)
>     520 
> 
> Exception: Length mismatch (1993 vs 0)

Slicing on the second level works just fine:

```
market_caps.xs('00036110', level='security_id')
```

> <class 'pandas.core.frame.DataFrame'>
> Int64Index: 204 entries, 20111230 to 20121019
> Data columns:
> market_cap    204  non-null values
> dtypes: float64(1)

Is it supposed to be like this?
