Strange matching behaviour when using str.contains with escape characters
Minimal example of a dataframe with a string with an escaped backslash. 


    import io
    import pandas as pd

    s1 = """X
    "\\x2f"
    """

    df = pd.read_csv(io.StringIO(s1))


Printing out the dataframe shows one backslash as expected:


    Out[13]: 
          X
    0  \x2f


The Command `df.X.str.contains("\\x")` throws the exception `error: incomplete escape \x` which is clearly unexpected since I can just normally assign that sequence to a string: `s = "\\x"`, and `print(s)` returns `\x` as expected.

To get the match correctly I need to use `df.X.str.contains(r"\\x")`, this returns `True` for the dataframe.

However `r"\\x"` is `'\\\\x'` or printed as `'\\x'` while the string I created the dataframe with is `"\\x2f"` which is printed as `'\x2f'` in the dataframe (`print(df.X.iloc[0])`).

Why does `'\\\\x'` match with `"\\x2f"`?


System:
- Windows 10
- Python 3.6.3
- Pandas 0.21.0
- IPython 6.2.1
- Spyder 3.2.4