Non-breaking spaces are printed as whitespace, but handled internally as `\xa0`
If a column name contains a non-breaking space, _pandas_  will print it as normal whitespace, but represent it internally as `\xa0`. So, if you print out the column names, then copy/paste a name into a `.loc[]`, you will get a `KeyError`.

```python
import pandas as pd

df = pd.DataFrame(data={"Space column": [1, 2, 3, 4, 5],
                        "Non-breaking\xa0space column": [1, 2, 3, 4, 5]})
print(df.columns)

# Index(['Non-breaking space column', 'Space column'], dtype='object')

df.loc[:, "Non-breaking space column"]

# ... KeyError: 'the label [Non-breaking space column] is not in the [columns]' ...
```
For obvious reasons, this error is not helpful for diagnosing the actual problem, because all you can do to check the key is print out the column names again...

Of course, it's not just a problem for column names, but for all strings.
```python
s = pd.Series(data=["Foo bar", "Bar\xa0foo"])
print(s)

# 0    Foo bar
# 1    Bar foo
# dtype: object

print(s.str.contains("Bar foo"))

# 0    False
# 1    False
# dtype: bool
```

#### Output of ``pd.show_versions()``

<details>
INSTALLED VERSIONS
------------------
commit: None
python: 3.5.2.final.0
python-bits: 64
OS: Darwin
OS-release: 16.1.0
machine: x86_64
processor: i386
byteorder: little
LC_ALL: None
LANG: en_GB.UTF-8
LOCALE: en_GB.UTF-8

pandas: 0.19.0
nose: 1.3.7
pip: 8.1.2
setuptools: 27.2.0
Cython: 0.25.1
numpy: 1.11.2
scipy: 0.18.1
statsmodels: 0.6.1
xarray: None
IPython: 5.1.0
sphinx: 1.4.8
patsy: 0.4.1
dateutil: 2.5.3
pytz: 2016.7
blosc: None
bottleneck: 1.1.0
tables: 3.3.0
numexpr: 2.6.1
matplotlib: 1.5.3
openpyxl: 2.4.0
xlrd: 1.0.0
xlwt: 1.1.2
xlsxwriter: 0.9.3
lxml: 3.6.4
bs4: 4.5.1
html5lib: None
httplib2: None
apiclient: None
sqlalchemy: 1.1.3
pymysql: 0.7.9.None
psycopg2: None
jinja2: 2.8
boto: 2.43.0
pandas_datareader: None</details>
