I have the dataframe below

```
+---------------------+
|         Col         |
+---------------------+
| CATEGORY A          |
| asdwed hello        |
| 8771asd how are you |
| CATEGORY B          |
| hello how are you   |
+---------------------+

```

What I am trying to accomplish is to remove the first word for certain rows only. I.e., for rows below `CATEGORY A`, I should remove the first word, but for rows below `CATEGORY B`, I should not.

One can assume the rows below a category will never have the same string value as a category itself.

Thus the output dataframe would look like

```
+---------------------+
|         Col         |
+---------------------+
| CATEGORY A          |
| hello               |
| how are you         |
| CATEGORY B          |
| hello how are you   |
+---------------------+

```

Dataframe below

```
d = {'col': ['CATEGORY A', 'asdwed hello', '8771asd how are you', 'CATEGORY B', 'hello how are you']}
df = pd.DataFrame(data=d)

```

What is the most Pythonic way of achieving this?