Сравните два Dataframes предложений и верните третий - PullRequest
0 голосов
/ 20 апреля 2020

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

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

Лог c предназначен для слов в c1 и c2, новое значение = 1, для слов только в c1, значение установлено в ноль.


sentences = tra_df['Sent1']
context = tra_df['Sent2']
Sent1[0] = "I am completely happy with the plan you have laid out today"
Sent2[0] = 'the plan you have laid out today'
c3 = ['0', '0', '0', '0' , '0', '1', '1', '1', '1', '1', '1'] 

1 Ответ

1 голос
/ 20 апреля 2020

Согласно моему пониманию вашего вопроса, вот решение.

def get_common_words(c1, c2):
    res = [0]*len(c1.split())
    for idx, existing_word in enumerate(c1.split()):
        if existing_word in c2.split():
            res[idx] = 1
    return res

get_common_words(c1, c2)

Если вы хотите, чтобы он работал на pandas фрейме данных

def get_common_words_df(row):
   c1 = row['Sent1']
   c2 = row['Sent2']
   return get_common_words(c1, c2)


df['sent3'] = df.apply(get_common_words_df, axis=1)

Вы можете оптимизировать это много

...