比较句子的两个 Dataframes 和 return 第三个
Compare two Dataframes of sentences and return a third one
我想比较两个长的 Dataframe 句子列,return 第三个 Dataframe 看起来像这样。
快照如下所示。
我的第一种方法是冗长的,只适用于单个实例,但当我将它应用于数据框时失败了。可以在之前的问题中找到。
逻辑是针对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']
根据我对你的问题的理解,这是解决方案。
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)
你可以优化很多
我想比较两个长的 Dataframe 句子列,return 第三个 Dataframe 看起来像这样。 快照如下所示。
我的第一种方法是冗长的,只适用于单个实例,但当我将它应用于数据框时失败了。可以在之前的问题中找到。
逻辑是针对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']
根据我对你的问题的理解,这是解决方案。
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)
你可以优化很多