[英]Check if text from one dataframe exists in another dataframe Python
我是使用文本和 nlp 的新手,现在我有两个这样的数据框(原始数据非常大):
全名 | 日期 | 价值 |
---|---|---|
STEAM/暴雪有限责任公司-合资企业 | 2001-08-03 | 是 |
ACCO/SSD/高频公司 | 2020-03-03 | 是 |
阿提哈德航空/汉莎航空/HD LLC | 2018-01-12 | 否 |
约翰集团 PLC/劳斯莱斯 PLC | 2005-12-19 | 是 |
FEDRA/KELL ELECTRONICS-战略联盟 | 1999-09-27 | 否 |
CBC/MAFA STUDIOS {CBC/MAFA ENTERTAINMENT} | 2013-06-24 | 否 |
公司 | 另一个值 |
---|---|
灵魂名字交互 | 50 |
阿提哈德公司 | 300 |
劳斯莱斯 plc comp | 8个 |
玛法公司 | 1000 |
汉莎航空公司 | 12 |
Dll有限公司 | 18 |
阿提哈德机场 | 1个 |
高清公司 | 743 |
我需要从 DF2 的“公司”列检查 DF1 的“All_name”列中是否有公司。 结果必须类似于新的 dataframe,如果它们在 DF1 中,则具有来自 DF2 的值。 在这个例子中,它看起来像:
DF_结果:
公司 | 另一个值 |
---|---|
阿提哈德公司 | 300 |
劳斯莱斯 plc comp | 8个 |
玛法公司 | 1000 |
汉莎航空公司 | 12 |
阿提哈德机场 | 1个 |
公司高清 | 743 |
困难在于数据框中两列之间的差异,只有一些词是相似的。 我必须比较单词(?)或其他东西......
这将适用于此数据集,但在大型数据集上使用它时要小心,因为它可能会给你一些误报,因为数据非常混乱:
df_1['All_name'] = df_1['All_name'].str.lower()
df_2['Soul Name Intertament'] = df_2['Soul Name Intertament'].str.lower()
all_companies = df_1['All_name'].str.split('/').explode().str.split(' ')
def apply_this(x):
for company in all_companies:
if len(set(x.split(' ')).intersection(set(company)))>=1:
return True
return False
df_result = df_2[df_2['Soul Name Intertament'].apply(lambda x: apply_this(x))]
print(df_result)
Output:
Soul Name Intertament 50
0 etihad company 300
1 rolls-royce plc comp 8
2 mafa corporation 1000
3 aircorporation lufthansa 12
5 airport etihad 1
6 hd corporation 743
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.