Разбить ряд на основе пунктов пули - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть df, у которого есть столбец с именем Description, и он имеет такие значения, как:

ID   Description
1    (a) this is good (b) bad (c) average
2    Ok
3    i am rahul works on (a) stack overflow (b) stack exchange

Ожидаемый DF:

 ID      Description
1        (a) this is good
1        (b) bad
1        (c) average
2        Ok
3        i am rahul works on (a) stack overflow
3        (b) stack exchange

Я видел ответы, такие как , это и , это , которые взрывают основание столбца на разделителях, но мне нужно взорваться, основываясь на точках маркера.

1 Ответ

5 голосов
/ 15 апреля 2019

Вот один способ, адаптированный по одной из ваших ссылок:

>>> df['Description'].str.split(r'.(?=\(.\))',expand = True).stack() 
ID
1   0       (a) this is good
    1                (b) bad
    2            (c) average
2   0                     Ok
3   0    i am rahul works on
    1     (a) stack overflow
    2     (b) stack exchange

Просто используйте регулярное выражение lookahead для разделения на.Разделение по 3d идентификатору немного отличается, так как вы не разделяете его там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...