Объединить строки в pandas на основе условия - PullRequest
1 голос
/ 06 мая 2020

Я пытаюсь объединить строки, которые не начинаются с определенного символа c ('['), с ближайшей строкой, которая начинается с него. Я прочитал текстовый файл следующим образом:

start df,

и ожидаю получить

end df.

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Вы можете использовать str[0] для проверки первого символа, затем cumsum для пометки блоков:

df['text'].groupby(df['text'].str[0].eq('[').cumsum()).agg(' '.join)

Вывод:

text
1            [aaa] sss
2    [bbb] mmm fff ppp
3        [iii] rrr qqq
4            [ggg] kkk
Name: text, dtype: object
0 голосов
/ 06 мая 2020

Сделаем

s=df.groupby(df.text.str.startswith('[').cumsum()).agg(' ',join)
...