Раздел, если применимо - PullRequest
       11

Раздел, если применимо

2 голосов
/ 12 марта 2019

У меня есть столбец в кадре данных с приблизительно 1,4 млн строк чатов, общий формат которых в каждой ячейке (1):

' имя агента : разговор '

Однако не все ячейки в столбце содержат этот формат.Некоторые ячейки просто (2):

' разговор '

Я использую следующий код, чтобы получить только разговор для ячеек, которыеструктурированный как (1):

only_transcripts['msgText'] = only_transcripts['msgText'].str.partition(':', expand = True)[2]

Однако, очевидно, этот код ничего не возвращает, если ячейка не содержит двоеточия (: ).

Есть ли быстрыйспособ, которым я могу избежать цикла for для обхода каждого экземпляра, чтобы применять вышеуказанный код только в ячейках, которые содержат двоеточие?

1 Ответ

2 голосов
/ 12 марта 2019

Добавьте Series.fillna к исходному столбцу для замены NaN s, здесь также есть другое решение с split и выделение вторых списков путем индексации

only_transcripts['msgText'] =(only_transcripts['msgText'].str.split(':')
                                                         .str[1]
                                                         .fillna(only_transcripts['msgText']))
...