Can large memory use corrupt a MultiIndex?
I have a large-ish dataframe full of timeseries data with a rather large multiindex, from which I need to select various smaller dataframes according to some feature in the header. E.g.

```python
small_df = large_df.xs('location name', level='locations', drop_level=False, axis=1)

```
Seems pretty straightforward and did work. However, I now run into `IndexError: list index out of range` or `small_df.head()` gives me a mangled output like this (shown for one of my multiindex levels as a small example, looks the same for every other level)
```python
       ...            
HZB                                319327                               305482                       322560                      319251                      304279                      322917                      315606                        304543                      313221                      326934                      322867                      304535                     303958                        304915                      326686                      322990                      322982                      303826                      304782                      313742                      300152                      303255                   302695                      303016              322552                      304931                               322628                      303347                      315721                      303487                      301440                      326918                      303032                      326843                305292                      326835                      304709                      327015                      313700                      302901                      303875                      305326                      315747                      305193                      300020                      313528                      317602                      300996                      319384                      304238                   322933                      322578                  322966                      326603                      301036                   326512                      301929                      301150                      302299                      319285                      313916                      315663                      322610                      323006                      315671                      326900                      303982                      327031                      322776                      304014                             319681                      304691                      303560                      305367               305151                      313494                      315952                      305219                      319277                      322974                      301432                      304147                      301267                      301085              304881                  300111                      314013                     315630                          315820                      304741                      303818                 302174                      326660                      314054             ...     
```
While `.head()` should give me something like this:
```
location        location name    ... 
feature1        foo              ...   
feature2        bar              ... 
HZB             313791           ... 
```
Interestingly, I can still work with the resulting df (i.e. `small_df.mean(axis=1)` still works, and the output from `.plot()` is also correct).

The whole issue appeared to me "out of the blue", after having an ipython session open for days (my last `In` was at 370) at over 1GB, and now that I have exited ipython and restardet my session I get a correct output for `head()`.

So, as said in the topic: **Can large memory use corrupt a MultiIndex?** Or could this have other reasons? How can I best try to reproduce that (besides hoping to break this memory threshold again, by continuing to work), and if so, what kind of information besides the rather meager one above would be helpful?

<details>

[paste the output of ``pd.show_versions()`` here below this line]
INSTALLED VERSIONS
------------------
commit: None
python: 2.7.13.final.0
python-bits: 64
OS: Linux
OS-release: 4.17.3-100.fc27.x86_64
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: None.None

pandas: 0.23.1
pytest: 2.8.5
pip: 8.1.1
setuptools: 20.3
Cython: 0.23.4
numpy: 1.10.4
scipy: 0.17.0
pyarrow: None
xarray: None
IPython: 4.1.2
sphinx: 1.3.5
patsy: 0.4.0
dateutil: 2.5.1
pytz: 2016.2
blosc: None
bottleneck: 1.0.0
tables: 3.2.2
numexpr: 2.5
feather: None
matplotlib: 1.5.1
openpyxl: 2.3.2
xlrd: 0.9.4
xlwt: 1.0.0
xlsxwriter: 0.8.4
lxml: 3.6.0
bs4: 4.4.1
html5lib: None
sqlalchemy: 1.0.12
pymysql: None
psycopg2: None
jinja2: 2.8
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None

</details>
