Question: Whilst applying the below function I have bool values converted to integers.

What am I missing?

```
import pandas as pd

def multi(x):
    if isinstance(x, (float, int)):
        return x * 10
    return x

print(pd.DataFrame(data={"a": [True, False]}).applymap(func=multi))

```

Ouput:

```
    a
0  10
1   0

```

Expected:

```
       a
0   True
1   False

```

Answer: 
`.` match with any character so that

`222` match with

```
-------------
| 2 | 2 | 2 |
-------------
|   |   |   |
-------------
|   |   |   |
-------------

OR

-------------
|   |   |   |
-------------
| 2 | 2 | 2 |
-------------
|   |   |   |
-------------

OR

-------------
|   |   |   |
-------------
|   |   |   |
-------------
| 2 | 2 | 2 |
-------------

```

and `2...2...2` match with

```
-------------
| 2 | . | . | . 
-------------
| 2 | . | . | . 
-------------
| 2 |   |   | 
-------------

OR

-------------
|   | 2 | . | . 
-------------
| . | 2 | . | . 
-------------
| . | 2 |   | 
-------------

OR

-------------
|   |   | 2 | . 
-------------
| . | . | 2 | . 
-------------
| . | . | 2 |
-------------

```

the `.` outside the board match with the separator `-` .

And the other two are more or less the same.
After the `join` and `replace` operations, `board` will be a string like this:

```
001-012-210

```

Each row is separated by `-`.

The `111` case is testing for a row full of X's.

The `1...1...1` case is testing for a column full of X's. There are 3 dots because there is also the `-` character.

The `1..1..1` case is testing for a diagonal full of X's.