Удалить строковую фразу из столбца фрейма данных и заменить ее python - PullRequest
0 голосов
/ 28 февраля 2019

Итак, у меня есть два кадра данных.первый фрейм данных набор данных содержит несколько столбцов, в этом фрейме данных я буду использовать набор данных ['text_msg'] , эти столбцы содержат текстовые данные.

Второй Dataframe предложений_to_exclude содержит данные, тип которых является типом текста.

Столбец, который я буду использовать в этом фрейме данных, это предложений_to_exclude ['предложений'] .

Что мне нужно сделать, это проверить, есть ли предложения из предложений_to_exclude ['предложения'] в первом кадре данных и удалить целое предложение.
Я пробовал функцию, ноу меня это не сработало: вот функция, которую я использовал ==>

  def remove_words(data):
    words_to_remove = sentences_to_exclude['sentences'].lower().split(" ")
    text_body = dataset['text_msg']
    for word in words_to_remove:
        text_body = text_body.replace(word,'' )
    return text_body

Вот пример предложений_to_exclude ['предложений']

для оптимальной ситуации, в том числе для информации

, а для первого кадра данных приведен пример набора данных ['text_msg'] :

для получения информации о происшествии, не имеющего отношения к делу, с указанием причины получения: - код транзакции: - номер клиента / коммандный клиент: - критерии выполнения и сообщения (читатель)ru pj) description detaille votre demande

Надеюсь, что мой запрос понятен Заранее благодарен за помощь

Пример данных

sentences = ['code transaction', 'Pour un traitement efficace']
text = [ ' i should delete code transaction ', ' i am trying to delete Pour un traitement efficace only from this sentence ' ]

df1 = pd.DataFrame({'Sentences ': sentences })
df2 = pd.DataFrame({'Text': text})

1 Ответ

0 голосов
/ 28 февраля 2019

Все еще не правильно поняли ваш вопрос, я постараюсь вам помочь, но, пожалуйста, в следующий раз, когда вам нужно будет включить пример данных.

Чтобы ответить на ваш вопрос, я приведу пример набора данных и объясню, как удалитьслова или предложения из другого текста:

# This is our example data
sentences = ['code transaction', 'Pour un traitement efficace']
text = [ ' i should delete code transaction ', ' i am trying to delete Pour un traitement efficace only from this sentence ' ]

df1 = pd.DataFrame({'Sentences': sentences})
df2 = pd.DataFrame({'Text': text})

# df1

    Sentences
0   code transaction
1   Pour un traitement efficace

# df2
    Text
0   i should delete code transaction
1   i am trying to delete Pour un traitement effi...

Далее мы хотим согласовать наши данные, чтобы у нас не было несоответствий, поэтому мы преобразуем в верхний регистр:

df1['Sentences'] = df1.Sentences.str.upper()
df2['Text'] = df2.Text.str.upper()


    Sentences
0   CODE TRANSACTION
1   POUR UN TRAITEMENT EFFICACE


    Text
0   I SHOULD DELETE CODE TRANSACTION
1   I AM TRYING TO DELETE POUR UN TRAITEMENT EFFI...

Теперь наши данные находятся вВ правильном формате мы можем удалить текст из одного набора данных в другой

df2['Text_cleaned'] = df2.Text.str.replace('|'.join(df1.Words), '')


    Text                                                Text_cleaned
0   I SHOULD DELETE CODE TRANSACTION                    I SHOULD DELETE
1   I AM TRYING TO DELETE POUR UN TRAITEMENT EFFI...    I AM TRYING TO DELETE ONLY FROM THIS SENTENCE

Что делает '|'.join(df1.Sentences)? 1013 * Возвращает строку, ограниченную |

'|'.join(df1.Words)

'CODE TRANSACTION|POUR UN TRAITEMENT EFFICACE'

Надеюсь, что это поможет вам и ответит на ваш вопрос.
Теперь вы можете применить эту логику к вашим собственным данным.

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