检查一个数据框中的单词是否出现在另一个数据框中(python 3,pandas)

2024-05-05

问题:我有两个数据框,想要删除它们之间的任何重复项/部分重复项。

 DF1                 DF2

 **Phrases**         **Phrases**  
 Little Red          Little Red Corvette
 Grow Your           Grow Your Beans
 James Bond          James Dean
 Tom Brady          

我想从 DF1 中删除“Little Red”和“Grow Your”短语,然后将两个 DF 合并,使最终产品如下所示:

 DF3
 Little Red Corvette
 Grow Your Beans
 James Bond
 James Dean
 Tom Brady

请注意,如果所有单词都出现在 DF2 中的短语中(例如 Little Red Vs. Little Red Corvette),我只想从 DF1 中删除短语。如果“James Dean”出现在 DF2 中,我不想从 DF1 中删除“James Bond”。


我在下面找到了这个解决方案。 目前,它还不是很优雅,但它可以工作。

import pandas as pd

df1 = pd.DataFrame(['Little Red', 'Grow Your', 'James Bond', 'Tom Brady'])
df2 = pd.DataFrame(['Little Red Corvette', 'Grow Your Beans', 'James Dean'])

# For each element of df1, if we found a left(df2, len(df1)) = df1, we
# apply df1 = df2
# Remark that the column name is 0
for i in range(int(df1.count())):
    for j in range(int(df2.count())):
        if df1.loc[i, 0] == df2.loc[j, 0][:len(df1.loc[i, 0])]:
            df1.loc[i, 0] = df2.loc[j, 0]

# Finaly we merge df1 and df2 by union of the keys.
# Here the column name is 0
df3 = df2.merge(df1, how='outer', on=0, sort=True, copy=False)

DataFrame df3 就是您所需要的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查一个数据框中的单词是否出现在另一个数据框中(python 3,pandas) 的相关文章

随机推荐